Qt编程项目文件解释
本人小白初次学习Qt,主要对于对Qt编程时项目文件的解释,便于对Qt项目框架的理解。
首先看一下新建项目后生成的文件,主要包括:
序号 | 文件 | 解释 |
---|---|---|
1 | Demo.pro | 项目文件 |
2 | main.cpp | 应用程序主要源文件 |
3 | Demo.cpp | 添加小部件源文件 |
4 | Demo.h | 添加小部件头文件 |
5 | Demo.ui | UI表单 |
接下来分别对以上文件进行详细解释。
- Demo.pro:指定应用程序名称,用于生成项目的模板,表明项目中包括的源文件、头文件、UI文件以及链接的库文件,这些都是自动生成,除非需要使用一些如charts等模块,需要我们手动添加QT+= charts。
- main.cpp:应用程序的入口。大多项目的main.cpp函数都是是这个格式,具体代码解释如下:
#include "Demo.h"
#include <QApplication>
int main(int argc, char *argv[]) //main函数,应用程序入口点
{
QApplication a(argc, argv); //使用argv中的argc个命令行参数构造一个应用程序对象
QMainWindow w; //创建QMainWindow对象
w.show(); //使部件可见
return a.exec(); //使QApplication 进入事件循环
}
- Demo.cpp:对界面控件添加操作函数
#include "Demo.h"
#include "ui_Demo.h" //uic工具生成的UI头文件
Demo::Demo(QWidget *parent): //定义Demo构造函数
QMainWindow(parent), //调用QMainWindow构造函数,它是Demo类的基类
ui(newUi::MainWindow) //创建UI类实例并分配给ui成员
{
ui->setupUi(this); //设置UI
this->setCentralWidget(ui->textEdit); //让文本编辑占据整个屏幕
connect(ui->actionExit, &QAction::triggered,this,&Demo::exit);
... //连接一些槽函数与信号
}
Demo::~Demo() //Demo析构函数
{
delete ui; //删除ui实例
}
void Demo::exit() //要执行的槽函数
{
QCoreApplication::quit(); //关闭操作
}
- Demo.h:含有必要的#includes、构造函数、析构函数、Ui对象等。
#ifndef Demo_H
#define Demo_H
#include <QMainWindow>
namespace Ui{
class Demo; //在UI名称空间声明了Demo类
}
class Demo::public QMainWindow
{
Q_OBJECT //类声明包含Q_OBJECT宏,必须在类定义中排第一位
public:
explicit Demo(QWidge *parent=0); //声明构造函数,0表示没有父窗口
~Demo(); //声明虚拟析构函数,用于释放对象在其生命周期内获取的资源
private slots:
void exit();
void open();
...
private: //声明一些成员变量
Ui::Demo *ui; //指向Demo类的指针
QString currentFile;
};
#endif
- Demo.ui:以XML格式生成用户界面定义,包含XML版本、字符编码以及一些不见元素。