Qt新手入门级 计算器加、减、乘、除、应用
2023-09-27 14:19:51 时间
前言
优良的跨平台特性:
Qt支持下列操作系统: Microsoft Windows 95/98, Microsoft Windows NT, Linux, Solaris, SunOS, HP-UX, Digital UNIX (OSF/1, Tru64), Irix, FreeBSD, BSD/OS, SCO, AIX, OS390,QNX 等等。
面向对象
Qt 的良好封装机制使得 Qt 的模块化程度非常高,可重用性较好,对于用户开发来说是非常方便的。 Qt 提供了一种称为 signals/slots 的安全类型来替代 callback,这使得各个元件之间的协同工作变得十分简单。
丰富的 API
Qt 包括多达 250 个以上的 C++ 类,还提供基于模板的 collections, serialization, file, I/O device, directory management, date/time 类。甚至还包括正则表达式的处理功能。
支持 2D/3D 图形渲染,支持 OpenGL
大量的开发文档
XML 支持。
一、Qt Creator
Qt创建工程
二、源码
1.拷贝到widget.h
代码如下(示例):
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QPushButton>
#include <QLineEdit>
#include <QHBoxLayout>
#include <QVBoxLayout>
#include <QGridLayout>
#include <QLabel>
#include <QString>
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = nullptr);
~Widget();
private:
QPushButton *button,*button1;
QLineEdit *edit1,*edit2,*edit3,*edit4;
QGridLayout *layout;
private slots:
void on_clicked();
void on_clicked1();
public:
void myLayout();
private:
Ui::Widget *ui;
};
#endif // WIDGET_H
2.拷贝到widget.cpp
代码如下(示例):
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
}
Widget::~Widget()
{
delete ui;
}
void Widget::myLayout()
{
button = new QPushButton;
button1 = new QPushButton;
layout = new QGridLayout(this);
edit1 = new QLineEdit;
edit2 = new QLineEdit;
edit3 = new QLineEdit;
edit4 = new QLineEdit;
button1->setText("清除");
button->setText("结果");
connect(button,SIGNAL(clicked(bool)),this,SLOT(on_clicked())); //连接按钮
connect(button1,SIGNAL(clicked(bool)),this,SLOT(on_clicked1()));
layout->addWidget(button,1,0,Qt::Alignment()); //初始化画图
layout->addWidget(edit1,0,0,Qt::Alignment());
layout->addWidget(edit2,0,1,Qt::Alignment());
layout->addWidget(edit3,0,2,Qt::Alignment());
layout->addWidget(edit4,1,1,Qt::Alignment());
layout->addWidget(button1,1,2,Qt::Alignment());
}
void Widget::on_clicked() //计算大小
{
int a = edit1->text().toInt();
int b = edit3->text().toInt();
QString c = edit2->text();
if(c=="+")
{
edit4->setText(QString::number(a+b));
}
if(c=="-")
{
edit4->setText(QString::number(a-b));
}
if(c=="*")
{
edit4->setText(QString::number(a*b));
}
if(c=="/")
{
edit4->setText(QString::number(a/b));
}
}
void Widget::on_clicked1() //清除
{
edit1->clear();
edit2->clear();
edit3->clear();
edit4->clear();
}
拷贝到 main.cpp
#include "widget.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
w.show();
w.myLayout();
return a.exec();
}
拷贝方法如图所示,点击下方链接
效果图
相关文章
- Qt Creator linux下使用SVN
- qt中连接sqlite数据库提示QSQLITE driver not loaded解决办法(重要)
- Qt Designer 修改窗体大小改变控件位置
- 基于 QT(C++)实现的(图形界面)日历【100010590】
- Qt编写推流综合应用示例-文件推流
- Qt音视频开发07-合并音视频文件
- Qt数据库应用21-数据分组导出
- Qt编写地图综合应用56-实时动态轨迹
- Qt编写地图综合应用38-覆盖物矩形
- Qt编写地图综合应用27-点聚合
- Qt开源作品37-网络中转服务器
- Qt开源作品23-颜色拾取器
- Qt编写地图综合应用20-多浏览器内核
- Qt编写地图综合应用19-地图服务
- Qt编写地图综合应用8-地图交互
- Qt编写地图综合应用5-自适应拉伸
- Qt编写的项目作品20-百度地图综合应用(在线+离线+区域+下载)
- Qt编写的项目作品8-视频综合应用示例
- Qt编写气体安全管理系统9-数据查询
- Qt网络模块如何使用(表格)
- Qt隐式共享与显式共享
- Qt之根据扩展名获取文件图标、类型
- C++中,如何在标准库的std::string和常用库(Qt,VC等)的QString之间进行选择?
- Qt ------ 再论事件循环
- Windows在线安装Qt5.15.2教程、Qt组件模块选择
- 使用Qt.labs.settings来存储应用的设置