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