Qt::WA_QuitOnClose用法
Qt官方助手對(duì)該標(biāo)志的解釋如下:
Makes Qt quit the application when the last widget with the attribute set has accepted closeEvent(). This behavior can be modified with the QApplication::quitOnLastWindowClosed property. By default this attribute is set for all widgets of type Qt::Window.
大意是:
? 當(dāng)最后一個(gè)設(shè)置了本屬性的窗體部件關(guān)閉時(shí)(即接受了closeEvent()事件)退出應(yīng)用程序。這個(gè)屬性可以被QApplication::quitOnLastWindowClosed函數(shù)修改。對(duì)所有類型為Qt::Window.的窗體,這個(gè)屬性默認(rèn)被設(shè)置為true。
如下:
#include "QtWidgetsApplication1.h" #include "QtTestWidget.h" QtWidgetsApplication1::QtWidgetsApplication1(QWidget* parent): QWidget(parent) {ui.setupUi(this);setWindowTitle("WidgetsApplication1");// setAttribute(Qt::WA_QuitOnClose, false);m_pTestWidget = new QtTestWidget();m_pTestWidget->show(); }QtWidgetsApplication1::~QtWidgetsApplication1() {}其中?m_pTestWidget是QtWidgetsApplication1的成員變量,類型為:QtTestWidget。QtTestWidget.cpp如下:
#include "QtTestWidget.h"QtTestWidget::QtTestWidget(QWidget *parent): QWidget(parent) {ui.setupUi(this);setWindowTitle("TestWidget"); // setAttribute(Qt::WA_QuitOnClose, false); }QtTestWidget::~QtTestWidget() { }彈出標(biāo)題為:WidgetsApplication1、TestWidget兩個(gè)窗體。按Qt助手的解釋:這兩個(gè)窗體的Qt::WA_QuitOnClose默認(rèn)都為true,所以先關(guān)閉其中任何一個(gè)窗體,程序不會(huì)退出,只有當(dāng)最后一個(gè)窗體關(guān)閉時(shí),應(yīng)用程序才退出。
? 當(dāng)將QtWidgetsApplication1.cpp構(gòu)造函數(shù)中的setAttribute(Qt::WA_QuitOnClose, false);注釋去掉,則:
a):先關(guān)閉WidgetsApplication1窗體,程序不退出;再關(guān)閉TestWidget窗體,程序才退出。因?yàn)榇藭r(shí)WidgetsApplication1窗體的Qt::WA_QuitOnClose為false,即剔除了該屬性;TestWidget窗體的Qt::WA_QuitOnClose依然為true,即TestWidget窗體是包含Qt::WA_QuitOnClose屬性的最后一個(gè)窗體,當(dāng)最后一個(gè)包含Qt::WA_QuitOnClose屬性的窗體退出時(shí),程序退出。
b):先關(guān)閉TestWidget窗體,程序退出。道理同a)條目所述。
? 當(dāng)將QtWidgetsApplication1.cpp、QtTestWidget.cpp構(gòu)造函數(shù)中的setAttribute(Qt::WA_QuitOnClose, false);注釋都去掉,無(wú)論先關(guān)閉哪個(gè)窗體或兩個(gè)窗體都關(guān)閉,應(yīng)用程序都不會(huì)退出。
總結(jié)
以上是生活随笔為你收集整理的Qt::WA_QuitOnClose用法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: SVN trunk(主线) branch
- 下一篇: 《魔兽世界6.0》黑色旋风获得方法详解