Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使Qt Labs Qml菜单栏正常工作_Qt_Qml_Menubar - Fatal编程技术网

如何使Qt Labs 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

我遵循了我能找到的所有说明,包括:

在main.cpp中使用“QApplication”而不是“QGuiApplication”

.pro文件中的“QT+=widgets” (顺便说一句,无论我是否做上述操作,我都会得到相同的结果——因为我在macOS上)

main.qml中的“将Qt.labs.platform 1.1作为实验室导入”

这是我的main.qml中的代码

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"))
        }
    }
}