我在 Mac OS X 10.7.4 上使用 Qt 4.7.4 ,而我正在尝试添加QMenuBar
和我的申请表QMenu
没有成功。
在查找示例时,我发现Basic Layouts并且Windows上界面的屏幕截图显示了文件菜单,这就是我要做的事情:
但是,在Mac OS X上运行此示例不会在应用程序窗口中显示 File 菜单:
并且它也没有显示在顶级Mac OS X栏中:
似乎这是Mac OS X上的Qt 4.7.4的错误,或者我们需要对源代码进行一些调整以使其在Mac上运行。
如何解决此问题?
我在Stack Overflow上有found similar个帖子,但都没有帮助。
答案 0 :(得分:5)
代码中没有问题,也没有问题。您引用的示例仅在菜单中创建Exit
操作。在OS X上,此类操作属于应用程序菜单,而不属于“文件”菜单。您的应用程序称为qt_menu
,这就是应用程序菜单的调用方式,您可以在此处找到Quit
操作 - Qt已正确地将其重命名为与Apple的HIG一致。在Windows上,习惯上称它为Exit,在Mac上它的风格很糟糕。 Qt的行为是正确的,我可以重现它。
将其他操作添加到文件菜单,或者只是将一个操作从Exit
重命名为其他操作。
请注意,Qt不会根据其名称直接移动操作。 Qt根据他们的名字猜测行动角色。您应该使用QAction::setMenuRole()
覆盖此类猜测并明确设置操作角色。然后在各种平台上适当地解释这些角色。