QMenuBar和QMenu未在Mac OS X中显示

kar*_*lip 3 c++ macos qt qmenu qmenubar

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

在查找示例时,我发现基本布局和Windows界面的屏幕截图显示了" 文件"菜单,这就是我要做的事情:

在此输入图像描述

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

在此输入图像描述

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

在此输入图像描述

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

我该如何解决这个问题?

我在Stack Overflow上发现了类似的帖子,但都没有帮助.

Rei*_*ica 6

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

将其他操作添加到文件菜单,或者只是将一个操作重命名为Exit其他操作.

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