QT中对内存的管理

在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()槽函数被调用时,就会调用析构函数进行析构。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值