qtquick: Use QQmlApplicationEngine in the examples

So we can add menus and such
This commit is contained in:
Sergio Martins
2021-04-05 16:41:45 +01:00
parent ead9e8945e
commit 06db10561c
6 changed files with 73 additions and 64 deletions

View File

@@ -17,6 +17,7 @@
#include <QQuickView>
#include <QGuiApplication>
#include <QQmlApplicationEngine>
class CustomFrameworkWidgetFactory : public KDDockWidgets::DefaultWidgetFactory
{
@@ -45,15 +46,11 @@ int main(int argc, char *argv[])
config.setFlags(flags);
config.setFrameworkWidgetFactory(new CustomFrameworkWidgetFactory());
QQuickView view;
view.setObjectName("MainWindow QQuickView");
KDDockWidgets::Config::self().setQmlEngine(view.engine());
view.resize(1000, 800);
view.show();
view.setResizeMode(QQuickView::SizeRootObjectToView);
QQmlApplicationEngine appEngine;
KDDockWidgets::Config::self().setQmlEngine(&appEngine);
appEngine.load((QUrl("qrc:/main.qml")));
auto dw1 = new KDDockWidgets::DockWidgetQuick("Dock #1");
view.setSource(QUrl("qrc:/main.qml"));
dw1->setWidget(QStringLiteral("qrc:/Guest1.qml"));
dw1->resize(QSize(800, 800));

View File

@@ -10,10 +10,18 @@
*/
import QtQuick 2.6
import QtQuick.Controls 2.12
import com.kdab.dockwidgets 1.0 as KDDW
KDDW.MainWindowLayout {
id: root
ApplicationWindow {
visible: true
width: 1000
height: 800
uniqueName: "MyWindowName-1"
KDDW.MainWindowLayout {
id: dockWidgetArea
anchors.fill: parent
uniqueName: "MyWindowName-1"
}
}

View File

@@ -15,7 +15,7 @@
#include <kddockwidgets/private/DockRegistry_p.h>
#include <kddockwidgets/FrameworkWidgetFactory.h>
#include <QQuickView>
#include <QQmlApplicationEngine>
#include <QGuiApplication>
#include <QCommandLineParser>
@@ -74,15 +74,11 @@ int main(int argc, char *argv[])
KDDockWidgets::Config::self().setFlags(flags);
QQuickView view;
view.setObjectName("MainWindow QQuickView");
KDDockWidgets::Config::self().setQmlEngine(view.engine());
view.resize(1000, 800);
view.show();
view.setResizeMode(QQuickView::SizeRootObjectToView);
QQmlApplicationEngine appEngine;
KDDockWidgets::Config::self().setQmlEngine(&appEngine);
appEngine.load((QUrl("qrc:/main.qml")));
auto dw1 = new KDDockWidgets::DockWidgetQuick("Dock #1");
view.setSource(QUrl("qrc:/main.qml"));
dw1->setWidget(QStringLiteral("qrc:/Guest1.qml"));
dw1->resize(QSize(800, 800));

View File

@@ -13,49 +13,55 @@ import QtQuick 2.6
import QtQuick.Controls 2.12
import com.kdab.dockwidgets 1.0 as KDDW
KDDW.MainWindowLayout {
id: root
ApplicationWindow {
visible: true
width: 1000
height: 800
// Each main layout needs a unique id
uniqueName: "MyWindowName-1"
KDDW.MainWindowLayout {
anchors.fill: parent
// Each main layout needs a unique id
uniqueName: "MyWindowName-1"
Repeater {
model: 3
KDDW.DockWidget {
uniqueName: "fromRepeater-" + index
source: ":/Another.qml"
}
}
Repeater {
model: 3
KDDW.DockWidget {
uniqueName: "fromRepeater-" + index
id: dock4
uniqueName: "dock4" // Each dock widget needs a unique id
source: ":/Another.qml"
}
}
KDDW.DockWidget {
id: dock4
uniqueName: "dock4" // Each dock widget needs a unique id
source: ":/Another.qml"
}
KDDW.DockWidget {
id: dock5
uniqueName: "dock5"
Rectangle {
id: guest
color: "pink"
KDDW.DockWidget {
id: dock5
uniqueName: "dock5"
Rectangle {
id: guest
color: "pink"
}
}
}
Button {
text: "Toggle Another"
anchors {
bottom: parent.bottom
left: parent.left
margins: 5
}
z: 10
Button {
text: "Toggle Another"
anchors {
bottom: parent.bottom
left: parent.left
margins: 5
}
z: 10
onClicked: {
if (dock5.dockWidget.visible) {
dock5.dockWidget.close();
} else {
dock5.dockWidget.show();
onClicked: {
if (dock5.dockWidget.visible) {
dock5.dockWidget.close();
} else {
dock5.dockWidget.show();
}
}
}
}

View File

@@ -16,7 +16,7 @@
#include <kddockwidgets/FrameworkWidgetFactory.h>
#include <kddockwidgets/MainWindowMDI.h>
#include <QQuickView>
#include <QQmlApplicationEngine>
#include <QGuiApplication>
#include <QCommandLineParser>
@@ -33,16 +33,11 @@ int main(int argc, char *argv[])
parser.setApplicationDescription("KDDockWidgets example application");
parser.addHelpOption();
QQuickView view;
view.setObjectName("MainWindow QQuickView");
KDDockWidgets::Config::self().setQmlEngine(view.engine());
view.resize(1000, 1000);
view.show();
view.setResizeMode(QQuickView::SizeRootObjectToView);
QQmlApplicationEngine appEngine;
KDDockWidgets::Config::self().setQmlEngine(&appEngine);
appEngine.load((QUrl("qrc:/main.qml")));
auto dw1 = new KDDockWidgets::DockWidgetQuick("Dock #1");
view.setSource(QUrl("qrc:/main.qml"));
dw1->setWidget(QStringLiteral("qrc:/Guest1.qml"));
dw1->resize(QSize(400, 400));

View File

@@ -10,9 +10,16 @@
*/
import QtQuick 2.6
import QtQuick.Controls 2.12
import com.kdab.dockwidgets 1.0 as KDDW
KDDW.MainWindowLayout {
id: root
uniqueName: "MyWindow1"
ApplicationWindow {
visible: true
width: 1000
height: 800
KDDW.MainWindowLayout {
anchors.fill: parent
uniqueName: "MyWindow1"
}
}