01黑马QT笔记之应用程序框架说明
1 首先,点击文件新建项目,依次选择红色圈圈,然后choose。
2 进入以下画面,第一行为项目名字(我记得好像中文名字会编译出错),然后选择自己放项目的位置,勾选默认,下一步。
3 点击下一步。
4 类名表示我们要创建的类的名字,基类是我们创建的类继承的基类,我选择了QWidget,这个是所有窗口的基类,第一个是带菜单栏的基类;第三个是对话框的基类。这里不创建ui,ui是可以直接对窗口操作的界面。然后下一步。
5 我们将项目文件,头文件,cpp文件,主函数列出来,里面已经将写好的框架给出了注释。
1)项目注释说明:
#-------------------------------------------------
#
# Project created by QtCreator 2020-04-21T13:22:59
#
#-------------------------------------------------
#下面这行表示模块
QT += core gui #1 表示GUI模块
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets #2 若版本超过qt4 则增加widgets模块,即QT前字母的可以省略
TARGET = 01_QtTest #3 应用程序名即项目名字
TEMPLATE = app #4 模板变量,告诉qmake为这个应用程序生成哪种makefile。即指定makefile的类型,有多种。
# The following define makes your compiler emit warnings if you use
# any feature of Qt which as been marked as deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS
# You can also make your code fail to compile if you use deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
SOURCES += main.cpp\ #5 项目相应的cpp文件
mywidget.cpp
HEADERS += mywidget.h #6 项目的头文件
2)自定义窗口类头文件注释说明:
#ifndef MYWIDGET_H //1 防止头文件重复
#define MYWIDGET_H
#include <QWidget> //2 头文件 特点:1)没有.h后缀 2)头文件名与类名一样
class MyWidget : public QWidget //3 开始我们自定义创建的类
{
Q_OBJECT //此行与信号和槽有关
public:
MyWidget(QWidget *parent = 0); //4 构造函数类内声明 在.cpp实现
~MyWidget();
};
#endif // MYWIDGET_H
3)自定义类类外实现说明:
#include "mywidget.h"
MyWidget::MyWidget(QWidget *parent) //类的类外实现 MyWidget继承与QWidget类 使用QWidget的构造函数绑定父对象
: QWidget(parent)
{
}
MyWidget::~MyWidget()
{
}
4)主函数的注释说明:
#include "mywidget.h"
#include <QApplication> //1 应用程序类头文件
int main(int argc, char *argv[])
{
QApplication a(argc, argv); //2 应用程序类对象,有且只有一个
/* 3 作用:
1)管理图形用户界面应用程序的控制流和主要设置。
2)是Qt的整个后台管理的命脉它包含主事件循环,在其中来自窗口系统和其它资源的所有事件处理和调度。
它也处理应用程序的初始化和结束,并且提供对话管理。
3)对于任何一个使用Qt的图形用户界面应用程序,都正好存在一个QApplication 对象,
而不论这个应用程序在同一时间内是不是有0、1、2或更多个窗口。
*/
MyWidget w; //4 自定义窗口对象
w.show();
return a.exec(); //5 循环,等待用户操作完成 即接受并处理 用户和系统的事件 并且把它们传递给适当的窗口部件。
}
最后给出QT的模块图。即项目注释说明的1。例QT += core gui