一、工程自带文件
以QMainWindow基类窗口为例,当前工程下的文件:
创建的类名Class name为:myMainWindow
.h文件声明函数
具体代码写在类名.cpp文件里(决定窗口逻辑和界面)
main.cpp一般不用管
1.【main.cpp】:
用于执行整个主窗口。
1.初始化应用程序,对象为a;
1.1 整个文件代码结束时,最后要返回a.exec(),目的是:阻塞,等待用户操作。
2.实例化主窗口对象,对象为w,窗口类名为自定义的Class name;
2.1 实例化对象时,自动调用对象的构造函数和析构函数
主窗口的具体内容,全写在构造函数中。
3.显示窗口
show():显示
hide():隐藏
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
myMainWindow w;
w.show();
return a.exec();
}
2.【窗口类名.cpp】:
用于:定义主窗口的构造函数和析构函数,决定主窗口的具体内容
其中:
this-> :主窗口中
ui-> :UI中
#include "mymainwindow.h"
#include "ui_mymainwindow.h"
myMainWindow::myMainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::myMainWindow)
{
ui->setupUi(this);
}
myMainWindow::~myMainWindow()
{
delete ui;
}
3.【窗口类名.h】:
用于声明
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
4.【窗口类名.ui】:
直接添加控件,
添加之后,在ui界面右上角更改每个控件的对象名,
在.cpp文件内通过: ui->对象名 访问每个控件,
ui->对象名->QT助手内的对应控件的某功能函数() 实现控件某功能
5.【Resources资源文件】:
先把资源文件包复制到QT工程目录文件下
1.创建项目
2.把资源包导入到此项目内
3.选中所有想要导入的文件,并“构建”
把资源添加到控件内:
ui中点击控件,
右下角找到icon,选择资源
icon开头的都是资源属性设置
二、自定义类文件
生成:
自定义类名.cpp
自定义类名.h
使用场景:
1.多个窗口 (点击主窗口某个选项,进入下个界面)
但是main.cpp依然只有主窗口的对象,不会出现新窗口
新窗口的实例化对象写在主窗口.cpp内,
新窗口与主窗口的切换通过信号收发实现
2.重写事件(重新自定义系统函数库函数)
具体写法在后文讲解