【问题标题】:QMenuBar and QMenu doesn't show in Mac OS XQMenuBar 和 QMenu 在 Mac OS X 中不显示
【发布时间】:2012-07-07 12:56:26
【问题描述】:

我在 Mac OS X 10.7.4 上使用 Qt 4.7.4我正在尝试添加 QMenuBar 和 @ 987654327@ 我的申请没有成功。

在查找示例时,我找到了Basic Layouts,Windows 上的界面截图显示了 文件 菜单,这就是我正在尝试做的事情:

但是,在 Mac OS X 上运行此示例不会在应用程序窗口中显示 文件 菜单:

它也没有显示在 Mac OS X 的顶部栏中:

这似乎是 Mac OS X 上 Qt 4.7.4 的一个错误,或者我们需要对源代码进行一些调整才能使其在 Mac 上运行。

我该如何解决这个问题?

我在 Stack Overflow 上发过 found similar 帖子,但没有任何帮助。

【问题讨论】:

    标签: c++ macos qt qmenu qmenubar


    【解决方案1】:

    代码没有问题,Qt也没有。您引用的示例仅在菜单中创建 Exit 操作。在 OS X 上,此类操作属于应用程序菜单,而不是文件菜单。您的应用程序被称为qt_menu,这就是应用程序菜单的调用方式,您可以在其中找到Quit 操作——Qt 已正确地将其重命名为与Apple 的HIG 一致。在 Windows 上,习惯上称它为 Exit,在 Mac 上它是不好的风格。 Qt 的行为是正确的,我可以重现它。

    将其他操作添加到文件菜单,或者简单地将一个操作从 Exit 重命名为其他内容。

    请注意,Qt 不会直接根据名称移动操作。 Qt 根据名字猜测动作roles。您应该覆盖这些猜测并使用QAction::setMenuRole() 明确设置操作角色。然后,这些角色会在各种平台上得到适当的解释。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多