我有一個應用程序,可以在主窗口上啓動模態對話框。主窗口有一些網絡活動在後臺更新我的後臺UI。由此,即使模態對話框打開,應用程序菜單也可以訪問。即使模態對話框打開,應用程序菜單也會啓用
我該如何避免這種情況?任何幫助表示讚賞。
我正在使用Mac,Qt,Carbon。
我有一個應用程序,可以在主窗口上啓動模態對話框。主窗口有一些網絡活動在後臺更新我的後臺UI。由此,即使模態對話框打開,應用程序菜單也可以訪問。即使模態對話框打開,應用程序菜單也會啓用
我該如何避免這種情況?任何幫助表示讚賞。
我正在使用Mac,Qt,Carbon。
不能在Mac OS X中禁用應用程序菜單,它總是「活躍」,但你可以禁用使用你不想行動,而對話是可見
你可以有模態對話框創建它自己的菜單欄,它將在顯示對話框時覆蓋主窗口。
如果您不想允許任何操作,只需創建一個空的QMenuBar,並將對話框作爲其父項。你甚至不必展示它。 Qt會自動找到它並將其提升到全局菜單欄。
我在Ubuntu中遇到了類似的問題,所以可能會在Mac OS X中解決您的問題。這很簡單,只需禁用主菜單欄的QMenu.nativeMenuBar
屬性,即menuBar->setNativeMenuBar(false)
。看到接受的答案在這裏:Global application menu active in modal dialog box (on Linux)
感謝downvoting,但正如你所看到的,這個問題沒有其他答案。這是Mac OS X上的一個「自然」行爲,菜單欄總是處於活動狀態 – 2010-03-22 18:03:56
正確的,正確的做法是根據需要禁用單個項目,而不是整個菜單。蘋果人機接口指南指出:「即使菜單或子菜單中的所有項目都不可用,菜單或子菜單標題也不會變暗。用戶仍然可以打開菜單,但其所有項目都變暗以指示這些項目是在目前情況下不可用「。 – 2010-03-26 13:25:43