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