一、QT
Qt是一个多平台的C++图形用户界面的程序框架,可以跨平台
二、QT的优点
- 跨平台,几乎支持所有的平台
- 接口简单,容易上手
- 一定程度上简化了内存回收机制
- 开发效率高,能够快速的构建应用程序
- 可以进行嵌入式开发
三、QT的基本模块
- QtCore,Qt4的基本模块,定义了其他模块的使用的Qt核心的非GUI类,所有其他的模块都依赖于该模块
- QtGUI,定义了图形用户界面
- QtNetwork,定义了Qt的网络编程
- QtOpenGL,定义了QtOpenGL的支持类
- QtSql,定义了访问数据库的类
- QtSvd,定义了显示和生成SVG类
- QtDesigner,定义了在应用程序中直接处理ui文件的类,它使得应用层序能够在运行时使用ui文件构建用户界面
- QtTest,定义了对Qt的应用程序和库进行单元测试的类
四、命名规范及快捷键
- 类名 驼峰命名法,每个单词首字母大写
- 函数、变量、首字母小写,其余单词首字母大写
- 运行 ctrl + R
- 编译 ctrl + B
- 查找 ctrl + F
- 帮助文档 F1
- 字体缩放 ctrl + 鼠标滑轮
- 自动对齐 ctrl + shift +i
- 整行移动 ctrl + shift + ↑(↓)
- 同名之间的.h和.cpp直接的快捷切换 F4
五、项目中的代码介绍
5.1 项目下的.pro文件
QT += core gui //Qt包含的模块
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets //大于4版本的包含widget模块
CONFIG += c++17//项目通用的配置选项
SOURCES += \
main.cpp \ //源文件
widget.cpp
HEADERS += \ //头文件
widget.h
FORMS += \ //项目中的UI文件列表
widget.ui
5.2 项目下的.h文件
#include <QWidget>
QT_BEGIN_NAMESPACE
//一个名字为ui的空间,包含了一个类Widget
namespace Ui {
class Widget;
}
QT_END_NAMESPACE
class Widget : public QWidget //继承
{
Q_OBJECT //Q_OBJECT宏 写了这个宏 就支持了Qt中的信号和槽机制
public:
//构造函数
Widget(QWidget *parent = nullptr);
//析构函数
~Widget();
private:
//使用Ui::Widget类定义了一个类Widget
Ui::Widget *ui;
};
5.3 项目中main.cpp 的文件
#include "widget.h"
#include <QApplication>
//程序入口 argc命令行变量数量 argv命令行变量数组
int main(int argc, char *argv[])
{
//应用程序对象 a,qt中。有且仅有一个 应用程序对象
QApplication a(argc, argv);
//创建MyWeidget对象w
Widget w;
//窗口默认是不会弹出的,如果想弹出,调用show方法
w.show();
//运行应用程序,开始应用程序的消息循环和事件处理
return a.exec();
}
5.4 项目中widget.cpp文件
#include "widget.h"
#include "ui_widget.h"
//运行父类QWidget的构造函数,创建一个Ui::Widget类的对象ui
Widget::Widget(QWidget *parent) : QWidget(parent),ui(new Ui::Widget)
{
ui->setupUi(this);
}
Widget::~Widget()
{
delete ui;
}
5.5 项目下widget.ui文件
文件widget.ui是窗口界面定义文件,是一个XML文件。它存储了界面上所有组件的属性设置、布局、信号与槽函数的关联等内容。用Qt Designer打开UI文件进行窗口界面可视化设计,保存修改后会自动重新生成新的UI文件。
六、qmake(.pro)文件中常见变量的含义
变量 | 含义 |
QT | 项目中使用的Qt模块列表,在用到某些模块时需要手动添加 |
CONFIG | 项目中的通用配置选项 |
DEFINES | 项目中的预处理定义列表,可以定义一些用于预处理的宏 |
TEMPLATE | 项目使用的模版,项目模版可以是应用程序或库、默认为应用程序 |
HEADERS | 项目中的头文件列表 |
SOURCES | 项目中的源程序文件列表 |
FORMS | 项目中的UI文件列表 |
RESOURCES | 项目中的资源文件列表 |
TARGET | 项目构建后生成的应用程序的可执行性文件名称,默认为项目名称 |
DESTDIR | 目标可执行文件的存放路径 |
INCLUDEPATH | 项目用到的其他头文件的搜索路径列表 |
DEPENDPATH | 项目依赖文件的搜索路径列表 |