3

我在Mac OS X 10.7.4上使用Qt 4.7.4我试图将 a和 a添加到我的应用程序但没有成功。QMenuBarQMenu

在寻找示例时,我发现了Basic Layouts并且 Windows 上的界面屏幕截图显示了File菜单,这就是我想要做的:

在此处输入图像描述

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

在此处输入图像描述

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

在此处输入图像描述

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

我该如何解决这个问题?

我在 Stack Overflow 上找到了类似的帖子,但没有任何帮助。

4

1 回答 1

8

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

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

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

于 2012-07-09T00:55:22.447 回答