Qt 如何将QML工具栏和菜单栏嵌入QMAIN窗口

Qt 如何将QML工具栏和菜单栏嵌入QMAIN窗口,qt,qml,Qt,Qml,我正在使用QWT库来绘制数据。似乎无法将QWidget嵌入qmlquick2。因此,我决定创建QMainWindow作为我的主窗口,并使用Quick Controls创建它的工具栏和菜单栏。如何将qml工具栏和菜单栏嵌入QMainWindow?您应该使用qml菜单栏和工具栏创建qmlApplicationWindow main.qml ApplicationWindow { visible: false menuBar: MenuBar { Menu {

我正在使用
QWT
库来绘制数据。似乎无法将
QWidget
嵌入
qmlquick2
。因此,我决定创建
QMainWindow
作为我的主窗口,并使用
Quick Controls
创建它的工具栏和菜单栏。如何将qml工具栏和菜单栏嵌入
QMainWindow

您应该使用qml菜单栏和工具栏创建qml
ApplicationWindow

main.qml

ApplicationWindow {
    visible: false
    menuBar: MenuBar {
        Menu {
            title: "Edit"
            MenuItem {
                text: "Cut"
            }
        }
    }
    toolBar: ToolBar {
        Row {
            anchors.fill: parent
            ToolButton {
                iconSource: "1.png"
            }
        }
    }
}
main.cpp

QApplication app(argc, argv);
QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral("qrc:///main.qml")));
然后获取指向
应用程序窗口的指针

QWindow *qmlWindow = qobject_cast<QWindow*>(engine.rootObjects().at(0));
并将容器放置在小部件的顶部

QWidget *widget = new QWidget();
QGridLayout *grid = new QGridLayout(widget);
grid->addWidget(container,0,0);
grid->addWidget(new QPushButton(widget),1,0);
widget->show();

是的,我知道。但是如何添加菜单栏和工具栏呢?它是有效的。我使用
QMainWindow
代替
QWidged
并将菜单栏添加为
mainwindow->setMenuWidget(容器)。它也是必需的:
container->setMinimumSize(qmlWindow->size().width(),qmlWindow->size().height()+30)否则菜单栏被剪切
QWidget *widget = new QWidget();
QGridLayout *grid = new QGridLayout(widget);
grid->addWidget(container,0,0);
grid->addWidget(new QPushButton(widget),1,0);
widget->show();