QT 应用程序关闭某个窗口时,关闭打开的所有其他窗口并退出程序

转载 2015年11月18日 21:48:49

项目中当关闭主窗口时,需要将同时打开的其他窗口关闭,并退出应用程序,实现方法如下:

在main函数中将QApplication::lastWindowClosed()信号和QApplication::quit()槽函数相关联,将主窗口的属性设置为QWidget::setAttribute(WA_QuitOnClose,true);其他窗口该属性设置为false。

  1. int main(int argc, char *argv[])  
  2. {  
  3.     QApplication a(argc, argv);  
  4.     a.connect( &a,  
  5.            SIGNAL(lastWindowClosed()),  
  6.            &a,  
  7.            SLOT(quit()));  
  8.     int ret = a.exec();  
  9.     return ret;  
  10. }  
     

具体可参考qt助手中的解释:

void QApplication::lastWindowClosed () [signal]

This signal is emitted from QApplication::exec() when the last visible primary window (i.e. window with no parent) with the Qt::WA_QuitOnClose attribute set is closed.

By default,

  • this attribute is set for all widgets except transient windows such as splash screens, tool windows, and popup menus
  • QApplication implicitly quits when this signal is emitted.

This feature can be turned off by setting quitOnLastWindowClosed to false.


Qt5窗口关闭与窗口销毁

学习记录不断更新 Qt5窗口(QDialog、QWidget)关闭: 如果QDialog,用accept() 或 reject()  如果QWidget,用close() 编写程序的时...

QT 关闭主窗口,触发关闭所有打开的窗口

之前碰到这个问题,今天解决了。 主窗口设置属性Qt::WA_QuitOnClose w.setAttribute(Qt::WA_QuitOnClose,true); Qt::WA_QuitOnC...

QT中关闭应用程序和窗口的函数

QT中关闭应用程序和窗口的函数 使用QT编辑界面,其中带来很大方便的一点就是Qt中自带丰富的、种类齐全的类及其功能函数,程序员可以在编辑程序的过程中简单地直接调用。关于窗口关闭的操作,在...

QT 中关闭窗口后 进程仍然存在

#include #include int main(int argc, char *argv[]){ QApplication app(argc, argv); ...

Qt捕捉窗口关闭事件与信号的捕捉

有时候我们希望在关闭窗口之前做一些操作,例如保存缓存数据或向用户提示是否关闭窗口等等。 由于一般的窗口都是继承自QWidget, 那么我们可以通过覆盖QWidget中的虚函数closeEvent(Q...

Qt信号与槽实现原理

有网友抱怨: 哪个大牛能帮帮我,讲解一下信号槽机制的底层实现? 不要那种源码的解析,只要清楚的讲讲是怎么发送信号,怎么去选择相应的槽,再做出反应。也就是类似于一个信号槽的相应流程。。。求解啊!!! 看...

QT:关闭外部程序

在Qt里使用win32函数1.方法一 使用头文件 #include #include #include #include #include ...

Qt 关闭窗口时循环依旧运行的解决办法

在Qt中,经常碰到关闭窗口之后,程序中的循环依旧运行。查资料知道跟线程和进程有关系,比较麻烦,以后再慢慢看线程和进程知识。今天想到一个比较偷懒的方法,具体方法如下(部分代码):  1  在类中设立判断...

Qt中点击关闭任务栏而不退出程序的实现方法

// 重新覆写关闭事件响应函数 protected: virtual void closeEvent(QCloseEvent *event); void MyWidget::closeEv...
  • e5Max
  • e5Max
  • 2017年07月31日 11:00
  • 371

【Qt开发】Qt 捕捉窗口关闭事件与信号的捕捉

有时候我们希望在关闭窗口之前做一些操作,例如保存缓存数据或向用户提示是否关闭窗口等等。 由于一般的窗口都是继承自QWidget, 那么我们可以通过覆盖QWidget中的虚函数closeEvent(Q...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:QT 应用程序关闭某个窗口时,关闭打开的所有其他窗口并退出程序
举报原因:
原因补充:

(最多只允许输入30个字)