在做界面开发时,Qt相对于MFC方便了很多,各种对象方法的封装更加适合程序员调用。Qt的内存管理更偏向于Java这种自动GC的机制,例如从QObject类派生的类,且指定了父类,这种对象内存自动回收。
例如,我们写一个按钮类MyButton, 继承于QPushButton,在QtCreator中添加类时,没有QPushButton, 选择QWidget, 我们在代码做修改即可。
MyButton.h文件
#ifndef MYBUTTON_H #define MYBUTTON_H #includeclass MyButton : public QPushButton { Q_OBJECT public: explicit MyButton(QWidget *parent = nullptr); //加上析构函数 ~MyButton(); signals: public slots: }; #endif // MYBUTTON_H
MyButton.cpp文件
#include "mybutton.h" #includeMyButton::MyButton(QWidget *parent) : QPushButton(parent) { } MyButton::~MyButton() { qDebug() << "run ~MyButton()"; }
在主程序文件中调用
#include "mainwindow.