您的位置:首页 > 编程语言 > Qt开发

QT中对内存的管理

2016-07-08 11:40 309 查看
在QT中,一切继承自QT自有类的类,如果存在parent指针,那么当parent指针delete时,该类中的指针(它们都属于parent指针对应的child指针)也会被delete。
综上,如果我们的窗口对应的类所对应的parent指针为NULL的话,我们还是要进行一次手动的内存管理。我这里举个例子,方便期间,只在文件里展示了析构函数。

#ifndef ACCOUNTDIALOG_H
#define ACCOUNTDIALOG_H

#include<QDialog>
#include<QString>

#include"Manage.h"
#include<ui_accountdialog.h>

class AccountDialog :public QDialog,
public Ui::AccountDialog, public ToolNeed
{
Q_OBJECT
public:
AccountDialog(Manage *m, int, QWidget *parents = 0);
~AccountDialog()
{
delete buttonGroup;
}

private slots:
void Okbutton();
void buttonGroupChanged(int);
void on_AccountButton_clicked();
private:
QButtonGroup *buttonGroup = new QButtonGroup;
int option;
Manage *adminptr;
};

#endif // ACCOUNTDIALOG


当QT窗口被关闭时,如果我们想要让该窗口对应的析构函数运行,我们要在该类的构造函数中加入以下代码:

setAttribute(Qt::WA_DeleteOnClose);


这样,当close()槽函数被调用时,就会调用析构函数进行析构。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: