我正在使用Qt 5.5.0,我正在尝试将QDockWidget与QML文件一起使用。我的main.qml当前设置为“应用程序”窗口,带有一组按钮,用于选择各种QML“页面”文件,我希望在可停靠窗口中打开这些文件。
我希望这些页面选择按钮位于屏幕固定区域中的QML文件中。当前,这些按钮位于ToolBar部分中,以实现此目的,并将main.qml设置为ApplicationWindow。
为了使用QDockWidget,我需要一个QMainWindow。我尝试按照如何将QML工具栏和菜单栏嵌入QMainWindow中给出的示例进行操作
因此,在main.cpp中,我尝试获取与我的main.qml相关联的QMainWindow,如下所示:
#include <QApplication>
#include <QQmlApplicationEngine>
#include <QDebug>
#include <QQmlContext>
#include <QQmlEngine>
#include <QtQml>
#include <QtQuick>
#include <QMainWindow>
#include <QGridLayout>
#include <QPushButton>
#include <QQuickWidget>
#include "pageset.h"
QMainWindow* GlobalMainWindow;
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
qmlRegisterType<PageSet>("pagesetter", 1, 0, "MyPageSet");
QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral("main.qml")));
//I’ve added the following just to try and get a QMainWindow....
QObject *rootObject = engine.rootObjects().first();
QQuickWindow *qmlWindow = qobject_cast<QQuickWindow *>(rootObject);
/* From /sf/ask/1901720761/ */
QWidget *container = QWidget::createWindowContainer(qmlWindow);
container->setMinimumSize(qmlWindow->size()); //This IS …Run Code Online (Sandbox Code Playgroud)