Solved Labs Menubar not working properly
-
Hi all
I've followed all of the instructions I can find including:
Using "QApplication" instead of "QGuiApplication" in main.cpp
"QT += widgets" in .pro file
(As a side note I get the same results whether I do the above or not - because I'm on macOS)
"import Qt.labs.platform 1.1 as Labs" in main.qmlHere's the code in my main.qml
Window { id: window visible: true visibility: "Maximized" width: 900 minimumWidth: 900 height: 700 minimumHeight: 700 title: qsTr("Crop Face") // Below taken straight from documentation Labs.MenuBar { id: menuBar Labs.Menu { id: editMenu title: qsTr("&Edit") // ... } Labs.Menu { id: viewMenu title: qsTr("&View") // ... } Labs.Menu { id: helpMenu title: qsTr("&Help") // ... } }
And I get this result:
and
Where on earth is "Emoji & Symbols" coming from !?
I have a commercial license and am using Qt 5.13 on MacOS Mojave.
Interestingly if I change title: qsTr("&Edit") to title: qsTr("&Hi"), I don't get a Hi menu.
Is there something I'm doing wrong or does Labs Menubar and Menu simply not work.
If they don't work, how do I create a standard Mac native platform menubar?Thanks
Jeff -
Turns out at least one menuItem is required in a Menu for the menu to show up. Because "Emoji & Symbols" is added to Edit automatically by Mac, the Edit menu does show up, but none of the others do.
I've added my new code below that works fine. Also note that because the "About" menuItem normally shows up under the application Menu, that is where it is placed and because that's the only menuItem in the File menu, the File menu doesn't need to show up. (This is how it should be - see image after code.)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")) } } }