从Q开始关闭QDialog时,请致电Destructor
Call destructor when closing QDialog started from Q
我做了一个自定义对话框,该对话框是从qdialog派生的。如果我关闭对话框,则不会调用攻击器。这是我在类AWidget
中打开对话框test
的方式。test
是AWidget
的成员:
//In AWidget:
test = new myDialog();
test->show();
...
如果我关闭此对话框,则对话框test
是(当然?)未删除/破坏。
我必须在AWidget
的破坏者中这样做:
Destructor of AWdiget:
delete test;
myDialog
消耗了很多内存。用户行为是打开myDialog
,在其中工作,关闭它,但要让AWidget
打开。
关闭时如何将内存分配/调用myDialog test
的删除器?
编辑
可能有比以下方式更好的方法:
void myDiaglog::closeEvent(QCloseEvent* event){
delete this;
}
如果要在关闭对话框后始终删除该对话框,则可以使用Qt::WA_DeleteOnClose
:
使QT删除该小部件后,小部件接受了关闭 事件(请参阅qwidget :: colestevent())。
//In AWidget:
test = new myDialog();
test->setAttribute (Qt::WA_DeleteOnClose);
test->show();
...
而不是:
test->show(); // async call
尝试以下操作:
test->exec(); // blocking call
在这种情况下,setAttribute(Qt::WA_DeleteOnClose, true);
和test->setAttribute (Qt::WA_DeleteOnClose);
都没有帮助。
相关文章:
- 请解释"函数1(p1,p2,p3);"的输出
- 请解释这句话(cout<<1+int((a<b)^((b-a)&1) )<<endl
- C++核心准则 C35 对于接口类"A base class destructor should be either public and virtual, or protected and nonv
- 为什么std::condition_variable notify_all的工作速度比notify_one快(对于随机请
- 此代码编译良好,但文件未创建?请指出错误
- 如何使基类的运算符对基类的可变参数数可见(请参阅下面的代码)?
- 抽象类错误,请参阅声明" "是抽象的
- 请解释字谜的代码,我看不懂计数器数组,每个值已经是0
- C++内联运算符重载中,请参阅当前对象
- 如果不是多个语句,请使用 if 语句
- 请找出我的代码中的错误,它在提交得到错误答案的同时仍然适用于我的所有测试用例
- 为什么子项目 CMAKE 不考虑 fno-sanitize,请禁用目标的消毒器
- 请发现它在 dev 中工作的错误,但在 hackerrank 中不起作用
- 不了解链表实现,请帮忙.C++
- 请描述一下在 c++ 中在此类中定义构造函数的方式?
- 请参阅在 Visual Studio 2019 中捕获 std::exception 时对函数模板实例化消息的引用
- 有没有办法在c ++中清除空数组,请检查下面的代码以获取说明
- 如何检测文件夹是否太重,如果是,请删除其中的一部分
- 从Q开始关闭QDialog时,请致电Destructor
- 在C 中,当CIN为Bash Heredoc时,请致电叉会导致反复的输入片段