一、项目文件组成
1.1 创建一个项目文件
建立好项目如下
(1)项目组织文件【untitled.pro】
- 存储项目设置文件
QT += core gui //表示项目中添加core gui模块
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets //条件执行语句,Qt主版本大于4时,才加入widgets语句
TARGET = untitled //表示生成目标可执行文件的名称
TEMPLATE = app //项目使用的模板是app
(2)主程序入口文件【main.cpp】
- 实现函数main()函数程序文件
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv); //定义并创建应用程序
MainWindow w; //定义并创建窗口
w.show(); //显示窗口
return a.exec(); //应用程序运行
}
(3)窗体界面文件【mainwindow.ui】
- 一个XML格式存储的窗体上的元件及其布局文件。
- 任何界面窗体或者组件都是用类封装的,一个类一般有一个.h和.cpp文件
(4).h文件【mainwindow.h】
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
namespace Ui { //一个命名空间Ui,包含一个类MainWindow
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = nullptr);
~MainWindow();
private:
Ui::MainWindow *ui; //Ui::MainWindow定义了一个指针
};
#endif // MAINWINDOW_H
- 命名空间里面定义的类是ui_mainwindow.h里面的类,用于描述界面组件的。
- ui指针:指向可视化界面设计,后面要访问界面上的组件,都需要通过这个指针
- 宏Q_OBJECT是任何实现信号、槽或属性的强制性要求。不管是否需要实现这些机制,都要 使用这个宏,否则会引发一些函数的奇怪行为。
(5).cpp文件【mainwindow.cpp】
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this); //实现窗口的生成与各种属性的设置,信号与槽的关联。
}
MainWindow::~MainWindow()
{
delete ui;
}
- ui_mainwindow.h 文件自动加入的
- 析构函数简单的删除用new创建的指针ui