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