Qt 之模式 非模式 半模式對話方塊

2021-08-20 15:31:04 字數 1527 閱讀 9752

1、qt模態對話方塊----

mainwindow *pmainwindow =

new mainwindow();

pmainwindow->setwindowtitle(qstringliteral("主介面"));

pmainwindow->show();

customwindow *pdialog =

new customwindow(pmainwindow);

pdialog->setwindowtitle(qstringliteral("模式對話方塊"));

// 關鍵**

pdialog->exec();

// 關閉模態對話方塊以後才會執行下面的**

pmainwindow->setwindowtitle(qstringliteral("主介面-模式對話方塊"));

qdebug() << qstringliteral("關閉模態對話方塊以後,可以繼續向下執行");

exec()之後的**不會執行,直到關閉模態對話方塊。

mainwindow *pmainwindow =

new mainwindow();

pmainwindow->setwindowtitle(qstringliteral("主介面"));

pmainwindow->show();

customwindow *pdialog =

new customwindow(pmainwindow);

pdialog->setwindowtitle(qstringliteral("非模式對話方塊"));

// 關鍵**

pdialog->show();

// 下面的**會立即執行

pmainwindow->setwindowtitle(qstringliteral("主介面-非模式對話方塊"));

qdebug() << qstringliteral("立即執行");

show()之後的**會立即執行。

mainwindow *pmainwindow =

new mainwindow();

pmainwindow->setwindowtitle(qstringliteral("主介面"));

pmainwindow->show();

customwindow *pdialog =

new customwindow(pmainwindow);

pdialog->setwindowtitle(qstringliteral("半模式對話方塊"));

// 關鍵**

pdialog->setmodal(true);

pdialog->show();

// 下面的**會立即執行

pmainwindow->setwindowtitle(qstringliteral("主介面-半模式對話方塊"));

qdebug() << qstringliteral("立即執行");

show()之後的**會立即執行。

Qt之模式 非模式 半模式對話方塊

關於 模式 和 非模式 對話方塊,相信大家都比較熟悉,但其中有乙個可能很多人都比較陌生,介於兩者之間的狀態,我們稱之為 半模式 非模式對話方塊 半模式對話方塊 更多參考 阻塞同一應用程式中其它可視視窗輸入的對話方塊。模式對話方塊有自己的事件迴圈,使用者必須完成這個對話方塊中的互動操作,並且關閉了它之...

Qt 非模式對話方塊

應用例項 搜尋框 建立乙個widget物件,作為主窗體的成員變數 searchwindow m searchwin m searchwin new searchwindow this m searchwin setwindowflags qt window 在使用者執行搜尋選單時顯示此視窗 int ...

QT對話方塊模式與非模式

非模態對話方塊 modeless dialog 的概念不是模態對話方塊就是在其沒有被關閉之前,使用者不能與同乙個應用程式的其他視窗進行互動,直到該對話方塊關閉。對於在模態來顯示對話方塊 另一種是使用show 方法,它使得對話方塊既可以非模態顯示,決定它是非模態的是對話方塊的modal屬性。在qt的非...