/* This file is part of KDDockWidgets. SPDX-FileCopyrightText: 2020 Klarälvdalens Datakonsult AB, a KDAB Group company Author: Sergio Martins SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only Contact KDAB at for commercial licensing options. */ #include #include #include #include #include #include #include #include #include #include #include int main(int argc, char *argv[]) { #ifdef Q_OS_WIN QGuiApplication::setAttribute(Qt::AA_UseOpenGLES); #endif #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling); QGuiApplication::setAttribute(Qt::AA_UseHighDpiPixmaps); #endif QGuiApplication app(argc, argv); KDDockWidgets::initFrontend(KDDockWidgets::FrontendType::QtQuick); // Create your engine which loads main.qml. A simple QQuickView would work too. QQmlApplicationEngine appEngine; KDDockWidgets::QtQuick::Platform::instance()->setQmlEngine(&appEngine); appEngine.load((QUrl("qrc:/main.qml"))); // Below we illustrate usage of our C++ API. Alternatively you can use declarative API. // See main.qml for examples of dockwidgets created directly in QML auto dw1 = new KDDockWidgets::QtQuick::DockWidget("Dock #1"); dw1->setGuestItem(QStringLiteral("qrc:/Guest1.qml")); dw1->resize(QSize(800, 800)); dw1->open(); auto dw3 = new KDDockWidgets::QtQuick::DockWidget("Dock #3"); dw3->setGuestItem(QStringLiteral("qrc:/Guest3.qml")); dw1->addDockWidgetToContainingWindow(dw3, KDDockWidgets::Location_OnRight); // Access the main area we created in QML with DockingArea {} auto mainArea = KDDockWidgets::DockRegistry::self()->mainDockingAreas().constFirst(); auto mdiLayout = new KDDockWidgets::Core::MDILayout(); mainArea->setPersistentCentralView(mdiLayout->view()->asWrapper()); auto dwInMDI1 = new KDDockWidgets::QtQuick::DockWidget("Dock #mdi1"); dwInMDI1->setGuestItem(QStringLiteral("qrc:/Guest3.qml")); auto dwInMDI2 = new KDDockWidgets::QtQuick::DockWidget("Dock #mdi2"); dwInMDI2->setGuestItem(QStringLiteral("qrc:/Guest3.qml")); mdiLayout->addDockWidget(dwInMDI1->dockWidget(), { 100, 100 }); mdiLayout->addDockWidget(dwInMDI2->dockWidget(), { 140, 140 }); return app.exec(); }