我使用的是Mac OS X 10.7.4 的Qt 4.7.4,和我想要一个添加QMenuBar
和QMenu
到我的申请没有成功。
当寻找例子,我发现基本布局和界面截图在Windows显示文件菜单,这是我想要做的事:
但是 ,运行在Mac OS X这个例子没有显示应用程序窗口中的文件菜单:
它也不会在顶级的Mac OS X栏显示:
看来,这是任何的Qt 4.7.4的Mac OS X上的错误,或要求我们做的源代码一些调整,使其在Mac上运行。
我怎样才能解决这个问题呢?
我已经发现了类似的堆栈溢出的职位,但没有帮助。
有代码没有问题,也没有在Qt的。 你举的例子只是创建了一个Exit
的菜单操作。 在OS X上,这种行为属于在应用程序菜单,而不是在文件菜单。 你的应用程序被称为qt_menu
,这就是应用程序菜单是如何被调用,而这也正是你会发现Quit
行动- Qt拥有正确更名为与苹果公司的HIG同意。 在Windows中,这将会是习惯上称之为退出,在Mac上是不好的风格。 Qt的行为是正确的,我可以复制它。
添加其他操作的文件菜单,或者干脆重新命名一个动作,从Exit
到别的东西。
需要注意的是Qt不直接移动基于其名称的行为。 Qt的猜测基于其名称的动作角色 。 你应该重写这样的猜测,并设置动作角色明确使用QAction::setMenuRole()
这些角色则获得在各种平台上适当的解释。