Qt:父/子链中有多个窗口,父对象不会关闭子窗口?
发布时间:2020-12-13 20:21:31 所属栏目:Windows 来源:网络整理
导读:我试图在一个链中创建多个窗口:窗口1是窗口2的父窗口,窗口2是窗口3的父窗口等.当我关闭一个窗口时,我希望所有的孩子也关闭.目前,如果我关闭顶级窗口,所有其他窗口都会关闭,如希望,但关闭,例如,窗口2,只关闭窗口2,而不是窗口3等.我该怎么做?谢谢你的帮助!
我试图在一个链中创建多个窗口:窗口1是窗口2的父窗口,窗口2是窗口3的父窗口等.当我关闭一个窗口时,我希望所有的孩子也关闭.目前,如果我关闭顶级窗口,所有其他窗口都会关闭,如希望,但关闭,例如,窗口2,只关闭窗口2,而不是窗口3等.我该怎么做?谢谢你的帮助!
main_window.cpp MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { QPushButton* button = new QPushButton("Open 1",this); connect(button,SIGNAL(clicked()),this,SLOT(on_button_clicked())); } void MainWindow::on_button_clicked() { window1 *w = new window1(this); w->show(); } window1.cpp window1::window1(QWidget *parent) : QWidget(parent) { this->setWindowFlags(Qt::Window); // in order to have a free-standing window QPushButton* button = new QPushButton("Open 2",SLOT(on_button_clicked())); } void window1::on_button_clicked() { window2 *w = new window2(this); w->show(); } window2.cpp window2::window2(QWidget *parent) : QWidget(parent) { this->setWindowFlags(Qt::Window); QLabel* label = new QLabel("Window 2",this); }
默认情况下,当最后一个主窗口(无父窗口)关闭时,QApplication退出(参见
QApplication::lastWindowClosed signal), 这就是为什么关闭你的MainWindow关闭一切. 关闭窗口小部件不会删除它,除非设置了属性Qt :: WA_DeleteOnClose(参见QWidget::close()).如果你只是希望你的窗口关闭,我想你必须重新实现closeEvent()来调用close()对孩子. 但是如果要在关闭时删除它们,则设置属性Qt :: WA_DeleteOnClose.当父母被删除时,孩子们将被自动删除. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- windows – 用于检查服务器是否在线的批处理脚本
- windows – 有没有办法审核AD的特定密码?
- wcf – 长时间轮询Windows Phone,60秒TimeOut
- windows – 使用新的HD(HP DL380 G3)扩展Raid5
- AD域变更审计软件—通过用户行为分析简化检测系统威胁
- Dll的放置目录&在指定目录打开命令行&查看DLL依赖
- windows – 如何在一个方向上“静默”TCP连接?
- windows-server-2008 – 是否可以在没有活动目录的情况下设
- windows-server-2008 – 我需要检测并修复长文件名
- 语音识别 – 如何在Windows中为sox安装flac支持(flac库)
推荐文章
站长推荐
- Skype接管网址
- .net – 无法使用EF5和VS 2010加载文件或程序集“
- winforms – 如何用DevExpress取代已经消失的60个
- 报告 – 我可以为Microsoft SQL Server 2012重新
- 如何在Windows PowerShell中进行屏幕截图?
- 什么是Windows 7上的Internet Explorer 11? ES2
- 对于Windows上的os.path.getmtime(),Python2.4和
- PAT A1017 Queueing at Bank (25 分)
- “无法在dll中找到名为[function]的入口点(c到c#
- 在Windows下,什么是流程“工作集”?
热点阅读