一、前导知识
1、基类表示父类、派生类表示子类
2、基类QWidget是QDialog和QMainWindow的父类
3、如果创建一个需要有菜单栏、工具栏、状态栏等,就可以选择QMainWindow作为基类
4、QDialog作为基类的话,就只是一个简单的对话框,右上角只有一个关闭按钮x
二、创建工程成功后代码如下
1、main.cpp中
#include “mywidget . h” //类名和头文件名一样
#include
//应用程序入口
int main(int argc , char * argv [ ])
{
QApplication a (argv , argv);//QApplication表示应用程序类,在每一个qt程序中有且仅有一个
MyWidget w;//MyWidget表示窗口类(窗口类创建之后默认是不显示,所以后面我们要它显示出来),w表示创建了一个窗口类的对象
w . show();//将窗口显示出来,w指的是整个窗口,我们对这个窗口进行其他操作时,相当于是对它进行操作
return a . exec(); //循环显示窗口,当收到某个触发信号或者事件时,它就会跳出,例如关闭窗口时,它就会跳出这个循环
}
2、mywidget.h中
#ifndef MYWIDGET_H
#define MYWIDGET_H
#include
class MyWidget(子类) : public QWidget (父类)
{
Q_OBJECT //如果使用信号和槽机制,就必须添加这个宏
public :
MyWidget (QWidget *parent = 0) ;//构造函数
~MyWidget(); //析构函数
};
#endif
3、mywidget.cpp中
#include “mywidget.h”
MyWidget::MyWidget(QWidget *parent)
: QWidget(parent)
{
}
MyWidget::~MyWidget()
{
}
4、xxxxx.pro工程中
QT += core gui //qt程序用到的模块
greaterThan(QT_MAJOR_VERSON,4): QT += widgets //为了兼容以前的版本
TARGET = xxxxx //生成的应用程序名称
TEMPLATE = app //指定生成的makefile的类型 lib
SOURCE +=main.cpp
mywidget.cpp //源文件
HEADERS +=mywidget.h //头文件
5、如果新建窗口需要依附另外一个窗口,需要给该窗口指定父类(意思是让新建的窗口不是独立的,而是建立在父类窗口之中)
6、QT中创建指针后,内存能自动回收的条件
1)从QObject派生的类 :1.直接 2.间接
2)指定父类,父亲析构的时候,先析构它的孩纸