在 Qt 中自定义 AppMenu

2024-02-26

我正在为 MacOS 开发 Qt 应用程序。

如何向 menuApp 添加项目?我的意思是出现在苹果图标右侧菜单栏上的条目

我想知道如何在 Qt 中实现这一点,而不是 Objective-C

我正在使用 Qt 5.9。这是QWidget应用程序

编辑:这是macos问题,如果你不知道menuApp是什么,可能你无法回答这个问题。这是Apple在每个应用程序中默认放置的菜单。在所附图像中,它对应于“Finder”菜单项

提前致谢


根据菜单角色的 QT 文档 https://doc.qt.io/qt-5/qaction.html#menuRole-prop,简短的答案是:设置menuRoleQMenu 项目的QAction文档中列出的预定义角色,或常规角色QAction::TextHeuristicRole。有些角色是根据菜单文本自动分配的,但除此之外,您必须自己完成。

您可以通过编程方式执行此操作,也可以使用 ui 编辑器执行此操作。以下是 QT Creator 中 ui 编辑器中的一些图像,正在编辑我的 mainwindow.ui 文件。我有一些通用的“常规”QMenu,它并不可见,在其下 QAction 元素是About它会自动提取并放在 menuApp 下,因为其名称与预定义的角色匹配。对于与预定义角色不匹配的“检查更新”QAction,我已手动设置其属性menuRole to ApplicationSpecificRole这样它也放在 menuApp 下:

mainwindow.ui 菜单栏显示 QT Creator 中的条目 https://i.stack.imgur.com/yQTMw.png

QT Creator 中的 mainwindow.ui 菜单角色选择 https://i.stack.imgur.com/GISTO.png

生成的应用程序菜单,其中关于菜单是自动归因的,并且检查更新是手动配置的 https://i.stack.imgur.com/6tLAn.png

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Qt 中自定义 AppMenu 的相关文章

随机推荐