继承的是widget类。
一、pro文件
#-------------------------------------------------
#
# Project created by QtCreator 2019-05-09T21:47:00
#
#-------------------------------------------------
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = chess1
TEMPLATE = app
SOURCES += main.cpp\
widget.cpp
HEADERS += widget.h
FORMS += widget.ui
第一行代码,意思是包含的模块。一个叫core(核心模块)模块,一个是gui(图形模块)模块,这个两个模块的类都可以使用了。下图是QT5过后的一些模块。
QT += core gui
下一行,greatthan大于4版本,意思是4版本以上加入widgets模块,上面说到,上图是QT5的,QT4中是没有gui模块的。
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
下一个,目标是生成的项目exe的名称。运行代码后,在代码文件夹中同时生成了一个build文件,这里面有一个dubug文件夹,exe就在里面。
TARGET = chess1
下一行,template模板,app时应用程序application。
TEMPLATE = app
下一行,source源文件。
SOURCES += main.cpp\
widget.cpp
下一行,头文件。
HEADERS += widget.h
二、程序入口main
#include "widget.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
w.show();
return a.exec();
}
刚开始是引用的两个文件,第一个是自己定义命名的,第二个的是应用程序的类。
main函数,argc是命令行变量的数量,argv是命令行变量的数组。
QApplication a(argc, argv);定义一个应用程序对象,这个对象有且仅有一个,参数是其获得的命名行,比如鼠标啊,键盘啊。
窗口默认是不展示的,需要调用show函数,exec进入消息循环机制。运行函数后窗口一直在,而不是消失了,就是这个原因。