2012-10-08 70 views
0

我有一個基本的QDialog,它的WindowFlags設置爲Qt :: Popup,使它看起來像一個典型的彈出式覆蓋。 在Windows上,一切都很好,如果您在主窗口外面或其他任何地方點擊,它都會消失。但在Mac OSX上,如果您單擊頂部的菜單欄或調整窗口大小,彈出窗口就會保持原樣。我完全沒有內部處理彈出窗口的鼠標進入/離開/移動/按下事件,所以關閉它不是我甚至處理的事情......它只是在Windows上自動執行。QDialog作爲彈出窗口不隱藏在Mac上當點擊主窗口

任何想法我可以讓它關閉,當主應用程序不再是系統上的當前上下文?

+0

當父窗口失去焦點時,它會正確隱藏。雖然不是在調整大小或點擊標題欄時。你是這個意思嗎? – jdi

+0

是的,這就是我的意思。 –

回答

0

當用戶點擊主窗口時,您可以安裝本地事件過濾器並關閉活動彈出對話框(QApplication :: activePopupWidget())。有關如何安裝本地過濾器的信息,請參閱以下answer

相關問題