我正在使用QWT
库来绘制数据。似乎无法将QWidget
嵌入QML Quick 2
。所以,我决定创建QMainWindow
作为我的主窗口,并使用Quick Controls
创建其工具栏和菜单栏。我该如何将qml工具栏和菜单栏嵌入QMainWindow
?
答案 0 :(得分:0)
您应该使用QML MenuBar和ToolBar
创建QMLApplicationWindow
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")));
然后获取指向ApplicationWindow
QWindow *qmlWindow = qobject_cast<QWindow*>(engine.rootObjects().at(0));
使用QWidget::createWindowContainer
创建窗口容器QWidget *container = QWidget::createWindowContainer(qmlWindow);
container->setMinimumSize(qmlWindow->size());
将容器放在窗口小部件的顶部
QWidget *widget = new QWidget();
QGridLayout *grid = new QGridLayout(widget);
grid->addWidget(container,0,0);
grid->addWidget(new QPushButton(widget),1,0);
widget->show();