QMenuBar和QMenu没有在Mac OS X显示(QMenuBar and QMenu doe

2019-07-30 07:38发布

我使用的是Mac OS X 10.7.4 的Qt 4.7.4,我想要一个添加QMenuBarQMenu到我的申请没有成功。

当寻找例子,我发现基本布局和界面截图在Windows显示文件菜单,这是我想要做的事:

但是 ,运行在Mac OS X这个例子没有显示应用程序窗口中的文件菜单:

它也不会在顶级的Mac OS X栏显示:

看来,这是任何的Qt 4.7.4的Mac OS X上的错误,或要求我们做的源代码一些调整,使其在Mac上运行。

我怎样才能解决这个问题呢?

我已经发现了类似的堆栈溢出的职位,但没有帮助。

Answer 1:

有代码没有问题,也没有在Qt的。 你举的例子只是创建了一个Exit的菜单操作。 在OS X上,这种行为属于在应用程序菜单,而不是在文件菜单。 你的应用程序被称为qt_menu ,这就是应用程序菜单是如何被调用,而这也正是你会发现Quit行动- Qt拥有正确更名为与苹果公司的HIG同意。 在Windows中,这将会是习惯上称之为退出,在Mac上是不好的风格。 Qt的行为是正确的,我可以复制它。

添加其他操作的文件菜单,或者干脆重新命名一个动作,从Exit到别的东西。

需要注意的是Qt不直接移动基于其名称的行为。 Qt的猜测基于其名称的动作角色 。 你应该重写这样的猜测,并设置动作角色明确使用QAction::setMenuRole() 这些角色则获得在各种平台上适当的解释。



文章来源: QMenuBar and QMenu doesn't show in Mac OS X