如何使Qt Labs Qml菜单栏正常工作
我遵循了我能找到的所有说明,包括: 在main.cpp中使用“QApplication”而不是“QGuiApplication” .pro文件中的“QT+=widgets” (顺便说一句,无论我是否做上述操作,我都会得到相同的结果——因为我在macOS上) main.qml中的“将Qt.labs.platform 1.1作为实验室导入” 这是我的main.qml中的代码如何使Qt Labs Qml菜单栏正常工作,qt,qml,menubar,Qt,Qml,Menubar,我遵循了我能找到的所有说明,包括: 在main.cpp中使用“QApplication”而不是“QGuiApplication” .pro文件中的“QT+=widgets” (顺便说一句,无论我是否做上述操作,我都会得到相同的结果——因为我在macOS上) main.qml中的“将Qt.labs.platform 1.1作为实验室导入” 这是我的main.qml中的代码 Window { id: window visible: true visibility: "Maximized&q
Window {
id: window
visible: true
visibility: "Maximized"
width: 900
minimumWidth: 900
height: 700
minimumHeight: 700
title: qsTr("Crop Face")
Labs.MenuBar {
id: menuBar
Labs.Menu {
id: editMenu
title: qsTr("&Hi")
// ...
}
Labs.Menu {
id: viewMenu
title: qsTr("&View")
// ...
}
Labs.Menu {
id: helpMenu
title: qsTr("&Help")
// ...
}
}
我得到了这个结果:
以及:
“表情符号”究竟来自哪里!?文件、视图和帮助菜单项发生了什么变化?
我有商业许可证,正在MacOS Mojave上使用Qt 5.13。
有趣的是,如果我将title:qsTr(“&Edit”)更改为title:qsTr(“&Hi”),我就不会得到Hi菜单。
是我做错了什么,还是实验室菜单栏和菜单根本不起作用。
如果它们不起作用,我如何创建标准的Mac本机平台菜单栏
谢谢
Jeff正如deW1在上面的评论中指出的,菜单中至少需要一个菜单项才能显示菜单。因为“表情符号”是由Mac自动添加到编辑中的,所以编辑菜单确实会显示,但其他菜单都不会显示。我在下面添加了新代码,效果很好。还要注意的是,由于“关于”菜单项通常显示在应用程序菜单下,也就是它所在的位置,并且因为它是文件菜单中唯一的菜单项,所以文件菜单不需要显示。(应该是这样的-请参见代码后面的图片。)
正如deW1在上面的评论中指出的,菜单中至少需要一个菜单项才能显示菜单。因为“表情符号”是由Mac自动添加到编辑中的,所以编辑菜单确实会显示,但其他菜单都不会显示。我在下面添加了新代码,效果很好。还要注意的是,由于“关于”菜单项通常显示在应用程序菜单下,也就是它所在的位置,并且因为它是文件菜单中唯一的菜单项,所以文件菜单不需要显示。(应该是这样的-请参见代码后面的图片。)
在我看来,您需要有菜单项才能显示。“表情符号”似乎是一个mac的东西,可以自动添加到“编辑”中Menus@deW1-你说得对。我已经在下面的答案中包含了我的新代码。在我看来,您需要有条目才能显示菜单。“表情符号”似乎是一个mac的东西,可以自动添加到“编辑”中Menus@deW1-你说得对。我在下面的答案中加入了我的新代码。
ApplicationWindow {
id: window
visible: true
visibility: "Maximized"
width: 900
minimumWidth: 900
height: 700
minimumHeight: 700
title: qsTr("Crop Face")
Labs.MenuBar {
id: menuBar
Labs.Menu {
id: fileMenu
title: qsTr("File")
Labs.MenuItem {
text: qsTr("&About")
// onTriggered: Qt.quit()
}
}
Labs.Menu {
id: windowMenu
title: qsTr("&Window")
Labs.MenuItem {
text: qsTr("&Minimize")
//onTriggered: messageDialog.show(qsTr("Open action triggered"))
}
Labs.MenuSeparator{}
Labs.MenuItem {
text: qsTr("Scroll Up")
//onTriggered: messageDialog.show(qsTr("Open action triggered"))
}
Labs.MenuItem {
text: qsTr("Scroll Down")
//onTriggered: messageDialog.show(qsTr("Open action triggered"))
}
}
Labs.Menu {
id: helpMenu
title: qsTr("&Help")
Labs.MenuItem {
text: qsTr("&View Website")
//onTriggered: messageDialog.show(qsTr("Open action triggered"))
}
}
}