QT-- 理解项目文件
目录
- 项目文件解析
- .pro 文件解析
- widget.h 文件解析
- main.cpp 文件解析
- widget.cpp 文件解析
- widget.ui 文件解析
- Qt 编程注意事项
- Qt Creator 中的快捷键
- 使用帮助文档
项目文件解析
.pro 文件解析
工程新建好之后,在工程目录列表中有⼀个后缀为 “.pro” 的文件, “.pro” 文件就是工程文件(project),它是 qmake(创建项目时选择的QT自动构建工具) 自动生成的用于生产 makefile 的配置文件。如图所示:

双击该文件可以查看内容。
QT += core gui // Qt 包含的模块
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets //⼤于 Qt4 版本才包含 widget 模块
TARGET = QtFirst //应⽤程序名⽣成的 .exe 程序名称
TEMPLATE = app //模板类型,应⽤程序模板
SOURCES += main.cpp\ //源⽂件
widget.cpp //源⽂件
HEADERS += widget.h //头⽂件
.pro" 文件的写法如下:
- 注释:从 “#” 开始,到这一行结束。
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets这条语句的含义是,如果
QT_MAJOR_VERSION 大于 4 也就是当前使用的 Qt5 及更高版本) 需要增加 widgets 模块。如果项目仅需支持 Qt5 , 也可以直接添加"QT += widgets"⼀句。不过为了保持代码兼容 ,最好还是按照 QtCreator 生成的语句编写。- 指定生成的应用程序名:
TARGET = QtDemo TEMPLATE = app//模板。告诉 qmake 为这个应用程序生成哪种 makefile。下面是可供选择的模板:
⚫ app:建立⼀个应⽤程序的 makefile。这是默认值,所以如果模板没有被指定,这个将被使用。
⚫ lib :建立⼀个库的 makefile。
⚫ vcapp:建立⼀个应用程序的 VisualStudio 项目文件。
⚫ vclib: 建立⼀个库的 VisualStudio 项目文件。
⚫ subdirs:这是⼀个特殊的模板,它可以创建⼀个能够进入特定幕录的 makefile 并且为它调用make 的 makefile。- 工程中包含的源文件:
SOURCES += main.cpp/widget.cpp - 工程中包含的头文件:
HEADERS += widget.h - 工程中包含的资源文件:
RESOURCES += painter.qrc - 工程中包含的 “ui” 设计文件:
FORMS += widget.ui - 配置信息:
CONFIG += c++11(使⽤ c++11 的特性) CONFIG 用来告诉 qmake 关于应用程序的配置信息。
widget.h 文件解析
在Qt中,如果要使用信号与槽(signal 和 slot)的机制 就必须加入 Q_OBJECT 宏;
Ui::Widget *ui; 这个指针是用前面声明的 namespace Ui 里的 Widget 类定义的,所以指针 ui 是指向可视化设计的界面,后面要访问界面上的组件,都需要通过这个指针 ui 去访问。
//ui_widget.h文件中
class Ui_Widget
{
public:void setupUi(QWidget *Widget){if (Widget->objectName().isEmpty())Widget->setObjectName(QString::fromUtf8("Widget"));Widget->resize(800, 600);retranslateUi(Widget);QMetaObject::connectSlotsByName(Widget);} // setupUivoid retranslateUi(QWidget *Widget){Widget->setWindowTitle(QCoreApplication::translate("Widget", "Widget", nullptr));} // retranslateUi};namespace Ui {class Widget: public Ui_Widget {};
} // namespace Ui

main.cpp 文件解析
使用Qt Creator 新建任意工程之后,main.cpp 文件中都会自动生成如下代码:

解释:
- Qt 系统提供的标准类名 声明头文件没有 .h 后缀;
- Qt ⼀个类对应⼀个头文件,类名 就是 头文件名;
QApplication为应用程序类;QApplication a;(a为应用程序对象,有且仅有⼀个。)
⚫ QApplication 管理图形用户界⾯应用程序的控制流和主要设置。
⚫ QApplication 是 Qt 的整个后台管理的命脉。它包含主事件循环,在其中来自窗口系统和其它资源的所有事件处理和调度。它也处理应用程序的初始化和结束,并且提供对话管理。
⚫ 对于任何⼀个使⽤ Qt 的图形⽤⼾界⾯应⽤程序,都正好存在⼀个 QApplication 对象,而不论这个应⽤程序在同⼀时间内是不是有 0、1、2 或更多个窗口。myWidget w; //实例化窗口对象w.show(); //调用show函数显示窗口a.exec():程序进入消息循环,等待对用户输入进行响应。这里 main()把控制权转交给Qt,Qt 完成事件处理工作,当应用程序退出的时候 exec() 的值就会返回。在 exec() 中,Qt 接受并处理用户和系统的事件并且把它们传递给适当的窗口部件。
widget.cpp 文件解析
widget.cpp 文件是类 Widget 的实现代码,所有在窗体上要实现的功能添加在此文件中;

widget.ui 文件解析
widget.ui 是窗体界面定义文件,是⼀个 XML 文件,定义了窗口上的所有组件的属性设置、布局,及其信号与槽函数的关联等。⽤ UI 设计器可视化设计的界⾯都由 Qt 自动解析,并以 XML 文件的形式保存下来。在设计界⾯时,只需在 UI 设计器里进行可视化设计即可,而不用管 widget.ui 文件是怎么生成的。
最终,QT的整体的执行流程如下:

Qt 编程注意事项
Qt Creator 中的快捷键
• 注释:ctrl + /
• 运行:ctrl + R
• 编译:ctrl + B
• 字体缩放:ctrl + ⿏标滑轮
• 查找:ctrl + F
• 整行移动:ctrl + shift + ⬆/⬇
• 帮助文档:F1
• 自动对齐:ctrl + i;
• 同名之间的 .h 和 .cpp 的切换:F4
• ⽣成函数声明的对应定义: alt + enter
使用帮助文档
打开帮助文档有三种方式. 实际编程中使用哪种都可以.
1、光标放到要查询的类名/方法名上, 直接按 F1
2、Qt Creator 左侧边栏中直接用鼠标单击 “帮助” 按钮:


3、找到 Qt Creator 的安装路径,在 “bin” 文件夹下找到 assistant.exe,双击打开;

例如查找QPushButton控件:

