如何在 Qt QML 中处理 mac 集成 About MenuBar 项?
Posted
技术标签:
【中文标题】如何在 Qt QML 中处理 mac 集成 About MenuBar 项?【英文标题】:How to handle the mac integrated About MenuBar item in Qt QML? 【发布时间】:2015-04-16 15:12:04 【问题描述】:我在 Mac 下创建了一个 QML 应用程序,但我不知道单击关于菜单时会发生什么。
在http://doc.qt.io/qt-5/qmenubar.html 中,我们找到了有关OS X 上的QMenuBar 的信息。但是对应的 QML 方法是什么?
目前,我的代码是:
Menu
title: qsTr("&File")
MenuItem
text: qsTr("&Open")
onTriggered: messageDialog.show(qsTr("Open action triggered"))
MenuItem
text: "about.*"
onTriggered: console.debug("FDF")
MenuItem
text: qsTr("E&xit")
onTriggered: Qt.quit()
当我执行的时候,这个菜单只显示Open,而About和Exit都正确集成到了mac菜单中。退出没问题,但是当我点击about时,就正常退出了。
那么我们该如何处理呢?
【问题讨论】:
这很奇怪。它非常适合我。哪个版本的 OSX/Qt? @BaCaRoZzo 感谢您的确认。我使用上面的代码创建了一个新项目,它运行良好。后来我发现了问题。 【参考方案1】:我发现了问题。我的代码是这样的,
menuBar: MenuBar
Menu
title: qsTr("&File")
MenuItem
text: qsTr("&Open")
onTriggered: messageDialog.show(qsTr("Open action triggered"))
MenuItem
text: "about.*"
onTriggered: console.debug("FDF")
MenuItem
text: qsTr("E&xit")
onTriggered: Qt.quit()
Menu
title: qsTr("&Help")
MenuItem
text: qsTr("&Help")
onTriggered: messageDialog.show(qsTr("Open action triggered"))
MenuItem
text: qsTr("&About")
onTriggered: Qt.quit()
about
菜单项有两个,后者覆盖了前一个。
【讨论】:
我明白了。很高兴听到您发现了问题。 :)【参考方案2】:menuBar: MenuBar
Menu
title: qsTr("&File") // Name
MenuItem
text: qsTr("&Open") // Name
onTriggered: messageDialog.show(qsTr("Open action triggered")) // Action on Triggered
MenuItem
...
【讨论】:
以上是关于如何在 Qt QML 中处理 mac 集成 About MenuBar 项?的主要内容,如果未能解决你的问题,请参考以下文章
如何在Qt C++中解析JSON数据并使之被QML应用 / 蓝讯
QT Quick (QML) assemble mac-.bundle -> 使用 macdeployqt 时不是动态库错误