我创建了一个源自QDialog的自定义对话框.如果我关闭对话框,则不会调用析构函数.这是我test在课堂上打开对话框的方法AWidget.test是以下成员AWidget:
//In AWidget:
test = new myDialog();
test->show();
...
Run Code Online (Sandbox Code Playgroud)
如果我关闭此对话框,对话框test(当然?)不会被删除/销毁.
我必须在析构函数中执行以下操作AWidget:
Destructor of AWdiget:
delete test;
Run Code Online (Sandbox Code Playgroud)
在myDialog消耗大量的内存.用户行为是打开一个myDialog,在其中工作,关闭它但是保持AWidget打开状态.
我如何myDialog test在关闭内存时调用内存/调用析构函数?
编辑
有没有比这更好的方法:
void myDiaglog::closeEvent(QCloseEvent* event){
delete this;
}
Run Code Online (Sandbox Code Playgroud)
如果要在关闭对话框后始终删除对话框,可以使用Qt::WA_DeleteOnClose:
当小部件接受close事件时,Qt删除此小部件(请参阅QWidget :: closeEvent()).
//In AWidget:
test = new myDialog();
test->setAttribute (Qt::WA_DeleteOnClose);
test->show();
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
354 次 |
| 最近记录: |