- 公开视频 -> 链接点击跳转公开课程
- 博客首页 -> 链接点击跳转博客主页
目次
工程配置
代码视图
配置文件
核心代码
工程配置
- New Project
- QT Widgets Application
- 涉及到名称输入不要存在中文
- QMAKE
- Weight
- 可以手动指定修改类文件
- 选择开发情况
代码视图
配置文件
- # 添加 Qt 模块 core 和 gui
- QT += core gui
- # 如果 Qt 的主版本号大于 4,添加 widgets 模块
- greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
- # 配置项目使用 C++17 标准
- CONFIG += c++17
- # 您可以使您的代码在使用弃用的 API 时无法编译。
- # 为了做到这一点,取消注释以下行。
- #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # 禁用在 Qt 6.0.0 之前被弃用的所有 API
- # 指定项目的源文件列表
- SOURCES += \
- main.cpp \
- widget.cpp
- # 指定项目的头文件列表
- HEADERS += \
- widget.h
- # 部署的默认规则。
- # 目标路径在 QNX 系统上是 `/tmp/$${TARGET}/bin`
- qnx: target.path = /tmp/$${TARGET}/bin
- # 目标路径在非 android 的 Unix 系统上是 `/opt/$${TARGET}/bin`
- else: unix:!android: target.path = /opt/$${TARGET}/bin
- # 如果 target.path 不为空,将其添加到 INSTALLS 变量中
- !isEmpty(target.path): INSTALLS += target
复制代码
- QT += core gui:
- 作用:告诉 qmake 该项目依赖 core 和 gui 模块。
- 影响:core 模块包含了 Qt 的核心功能,而 gui 模块包含了图形用户界面相关的功能。
- greaterThan(QT_MAJOR_VERSION, 4): QT += widgets:
- 作用:如果 Qt 的主版本号大于 4,则添加 widgets 模块。
- 影响:widgets 模块包含了用于构建桌面应用程序的窗口小部件类。
- CONFIG += c++17:
- 作用:配置项目使用 C++17 标准。
- 影响:使编译器使用 C++17 标准进行编译,启用 C++17 的新特性。
- #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000:
- 作用:这行代码被注释掉了。如果取消注释,它会禁用在 Qt 6.0.0 之前被弃用的所有 API。
- 影响:如果启用这行,将逼迫编译器在检测到使用弃用的 API 时报错,有助于代码的前瞻性维护。
- SOURCES += \ main.cpp \ widget.cpp:
- 作用:指定项目标源文件列表。
- 影响:qmake 将这些文件到场到项目中进行编译。
- HEADERS += \ widget.h:
- 作用:指定项目标头文件列表。
- 影响:qmake 将这些头文件包含在项目中。
- qnx: target.path = /tmp/$${TARGET}/bin:
- 作用:在 QNX 系统上,设置目标路径为 /tmp/$${TARGET}/bin。
- 影响:定义了在 QNX 系统上摆设时的目标路径。
- else: unix:!android: target.path = /opt/$${TARGET}/bin:
- 作用:在非 android 的 Unix 系统上,设置目标路径为 /opt/$${TARGET}/bin。
- 影响:定义了在 Unix 系统(排除 Android)上摆设时的目标路径。
- !isEmpty(target.path): INSTALLS += target:
- 作用:如果 target.path 不为空,则将其添加到 INSTALLS 变量中。
- 影响:定义了安装目标路径,使项目可以摆设到指定路径。
核心代码
- #ifndef WIDGET_H
- #define WIDGET_H
- // 包含 QWidget 类的头文件
- #include <QWidget>
- // 定义一个名为 Widget 的类,继承自 QWidget
- class Widget : public QWidget
- {
- // Q_OBJECT 宏,用于启用 Qt 的元对象系统,包括信号和槽机制
- Q_OBJECT
- public:
- // 构造函数,接受一个 QWidget 类型的指针作为父对象,默认为 nullptr
- Widget(QWidget *parent = nullptr);
- // 析构函数
- ~Widget();
- };
- #endif // WIDGET_H
- // 包含 widget.h 头文件,以便实现 Widget 类
- #include "widget.h"
- // Widget 类的构造函数实现
- Widget::Widget(QWidget *parent)
- : QWidget(parent) // 调用基类 QWidget 的构造函数,传递父对象
- {}
- // Widget 类的析构函数实现
- Widget::~Widget() {}
- // 包含 widget.h 头文件,以便使用 Widget 类
- #include "widget.h"
- // 包含 QApplication 类的头文件
- #include <QApplication>
- // 主函数,程序的入口点
- int main(int argc, char *argv[])
- {
- // 创建一个 QApplication 对象,管理应用程序的资源和事件循环
- QApplication a(argc, argv);
- // 创建一个 Widget 对象,默认没有父对象
- Widget w;
- // 显示 Widget 窗口
- w.show();
- // 进入应用程序的主事件循环,直到调用 exit() 函数
- return a.exec();
- }
复制代码
- widget.h 文件:
- 使用 #ifndef, #define, #endif 宏防止头文件重复包含。
- 包含 QWidget 头文件,定义一个继续自 QWidget 的 Widget 类。
- 使用 Q_OBJECT 宏启用 Qt 的元对象系统。
- 声明 Widget 类的构造函数和析构函数。
- main.cpp 文件:
- 包含 widget.h 和 QApplication 头文件。
- 在 main 函数中创建 QApplication 对象,管理应用程序的资源和事件循环。
- 创建 Widget 对象并表现它。
- 调用 QApplication::exec() 进入主事件循环,直到应用程序退出。
- widget.cpp 文件:
- 包含 widget.h 头文件。
- 实现 Widget 类的构造函数和析构函数。
- 构造函数调用基类 QWidget 的构造函数,通报父对象。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |