Qt / 模态对话框的实现
生活随笔
收集整理的這篇文章主要介紹了
Qt / 模态对话框的实现
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1、設(shè)置屬性
setWindowFlags(Qt::FramelessWindowHint | Qt::Dialog); setWindowModality(Qt::WindowModal);其中 Qt::Dialog 這個屬性是要加的,因為這個屬性會告訴 Qt 這個窗口是要被當(dāng)做對話框?qū)Υ?#xff0c;從而實現(xiàn)模態(tài)的效果。
下面那個函數(shù)的參數(shù)有 3 種:
- Qt::NonModal :該窗口不是模態(tài),不會阻塞其它界面接受輸入信息;
- Qt::WindowModal:該窗口是一個當(dāng)以層次的模態(tài)窗口,會阻塞它的父窗口、祖父窗口和各個兄弟窗口接受輸入信息;
- Qt::ApplicationModal:該窗口是應(yīng)用模態(tài)窗口,會阻塞所有窗口接受輸入信息。
一般用第二種就能夠在彈出來的對話框中接收輸入法信息。?
2、父窗體將 this 指針傳入模態(tài)框
彈出該模態(tài)窗體需要制定好父窗體,即:傳入父窗體的 this 指針,這樣 Qt 才能知道到底需要堵塞的父窗體是誰。
3、彈框的時機
由于需要提供父窗體的 this 指針,所以需要保證該父窗體是創(chuàng)建成功的,即:父窗體完成了構(gòu)造函數(shù)的運行。如果在父窗體的構(gòu)造函數(shù)中新建模態(tài)對話框,并傳入 this 指針,此時 this 是無效的。
?
(SAW:Game Over!)
?
總結(jié)
以上是生活随笔為你收集整理的Qt / 模态对话框的实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Qt / 动态的切换控件样式的方法
- 下一篇: Qt / 伪状态和子部件