我正在为 macOS 开发 Qt 应用程序。
如何将项目添加到menuApp?我的意思是出现在苹果图标右侧菜单栏上的条目。
如何在 Qt 中实现这一目标?
我使用的是Qt 5.9。 Qt 小部件。
menuApp 是Apple 在每个应用程序中默认放置的菜单。在所附的图像中,它对应于一个显示“Finder”的菜单条目:
根据菜单角色的QT文档,简短的答案是:将QMenu项
menuRole
的QAction
设置为文档中列出的预定义角色,或常规QAction::TextHeuristicRole
。有些角色是根据菜单文本自动分配的,但除此之外,您必须自己完成。
您可以通过编程方式执行此操作,也可以使用 ui 编辑器执行此操作。以下是 QT Creator 中 ui 编辑器中的一些图像,正在编辑我的 mainwindow.ui 文件。我有一些通用的“常规”QMenu,它不应该是可见的,在它下面的 QAction 元素是
About
,它是自动提取的并放在 menuApp 下,因为它的名称与预定义的角色匹配。对于不匹配任何预定义角色的“检查更新”QAction,我已手动将其属性 menuRole
设置为 ApplicationSpecificRole
,这样它也放在 menuApp 下:
创建菜单栏:https://doc.qt.io/qt-5/qmenubar.html.
对于想要使用 qml 的人,只需这样做:
import QtQuick 2.15
import QtQuick.Window 2.15
import QtQuick.Controls 2.15
import Qt.labs.platform 1.1 // comment this import to show menu in your app
ApplicationWindow {
width: 640
height: 480
visible: true
title: "Simple Test"
color: "#fff"
MenuBar {
id: menuBar
Menu {
id: fileMenu
title: qsTr("File")
MenuItem { text: qsTr("&New...") }
}
Menu {
id: editMenu
title: qsTr("&Edit")
// ...
}
Menu {
id: viewMenu
title: qsTr("&View")
// ...
}
Menu {
id: helpMenu
title: qsTr("&Help")
// ...
}
}
}
文档:https://doc.qt.io/qt-5/qml-qt-labs-platform-menubar.html
不要忘记添加Widgets(在Qt +=或find_package等设置中)和QApplication(在main.cpp中)。