我在使用Qt 4.8作爲標題的mac OS X上開發一個程序。 現在我面臨一個問題,我花了很多時間,但仍然無法解決。子QMainWindow標題欄在Mac OS X上消失(添加更多描述)
我有一個QWidget(稱爲A),它將在一些操作後打開一個QMainWindow(稱爲B)。 當B被打開時,我需要A被B阻擋,所以我將A設置爲B的父級,並將B的窗口模態設置爲Qt :: WindowModal。
在其他平臺上,它的工作原理和我想的一樣,但是,當涉及到mac時,B沒有自己的標題欄,只是彈出並附加到A的標題欄。 A的標題欄上的關閉按鈕是灰色的,這意味着我無法通過按鈕關閉B,我需要在QMenu上使用退出QAction關閉它。
當我將B的父代設置爲0(NULL)而不是B時,它具有獨立的標題欄,就像在Windows或Linux上一樣,這就是我想要的。然而它丟失了A被B阻擋的屬性。
我試着設置windows標誌,比如Qt :: CustomizeWindowHint等等,但是沒有人工作。
有什麼辦法保持A和B之間的等級關係,並給B一個獨立的標題欄在Mac上?感謝大家的幫助:)
ps。我試着小程序,發現這種情況只發生在WindowModal(NONMODAL和ApplicationModal正常工作)
謝謝Caleb! 我生成了QMainWindow,並通過Qt Creator將其設置爲WindowModal,它在生成的ui_mainwindow文件中調用了setWindowModality函數。 起初我沒有設置任何標誌,然後我嘗試了Qt :: Window,但情況相同。 ui文件默認也沒有設置任何標誌。根據我添加的描述,這隻發生在windowModal下。 NonModal和ApplicationModal isfine。它有關係嗎? 我能在google上找到的是窗口標誌,我已經做到了。我讀過這個文檔,Qt :: Window不包含sheet屬性。 爲什麼它仍然表現爲一張表而不是一個正常的窗口? – 2012-04-26 19:48:10