我有一个应用程序,我可以在主窗口上启动模式对话框。主窗口在后台进行一些网络活动,更新我的后台UI。因此,即使打开模态对话框,也可以访问应用程序菜单。
我该如何避免这种情况?任何帮助表示赞赏。
我正在使用Mac,Qt,Carbon。
答案 0 :(得分:2)
您无法在Mac OS X上禁用“应用程序”菜单,它始终处于“活动状态”但您可以禁用在对话框可见时不想使用的操作
答案 1 :(得分:0)
您可以让模态对话框创建自己的菜单栏,在显示对话框时将覆盖主窗口。
如果您不想允许任何操作,只需创建一个空的QMenuBar,并将对话框作为其父级。你甚至不必展示它。 Qt会找到它并自动将其推广到全局菜单栏。
答案 2 :(得分:0)
我在Ubuntu中遇到了类似的问题,所以这可能会解决你在Mac OS X中的问题。这很简单,只需禁用主菜单栏的QMenu.nativeMenuBar
属性即menuBar->setNativeMenuBar(false)
。请在此处查看已接受的答案:Global application menu active in modal dialog box (on Linux)