Added DuplicateScreen using QML project

master
Mehran Dehghanian 4 years ago
parent 2db5a72661
commit 3a0c4c2c4c

@ -0,0 +1,30 @@
QT += quick
CONFIG += c++11
# The following define makes your compiler emit warnings if you use
# any Qt feature that has been marked deprecated (the exact warnings
# depend on your compiler). Refer to the documentation for the
# deprecated API to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS
# You can also make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
SOURCES += \
main.cpp
RESOURCES += qml.qrc
# Additional import path used to resolve QML modules in Qt Creator's code model
QML_IMPORT_PATH =
# Additional import path used to resolve QML modules just for Qt Quick Designer
QML_DESIGNER_IMPORT_PATH =
# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /usr/sbin/novin/
!isEmpty(target.path): INSTALLS += target

@ -0,0 +1,22 @@
#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include <QQuickView>
int main(int argc, char *argv[])
{
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QGuiApplication app(argc, argv);
QQmlApplicationEngine engine;
const QUrl url(QStringLiteral("qrc:/main.qml"));
QObject::connect(&engine, &QQmlApplicationEngine::objectCreated,
&app, [url](QObject *obj, const QUrl &objUrl) {
if (!obj && url == objUrl)
QCoreApplication::exit(-1);
}, Qt::QueuedConnection);
engine.load(url);
return app.exec();
}

@ -0,0 +1,76 @@
import QtQuick 2.12
import QtQuick.Controls 2.12
import QtQuick.Window 2.12
Item{
Loader{
id: source
sourceComponent: ApplicationWindow{
id: appWindow
width: 800
height: 800
onFrameSwapped: {
windowContent.grabToImage(function(result) {
secondWindow.frame = String(result.url);
});
}
visible: true
screen: Qt.application.screens[0]
Component.onCompleted: {
showFullScreen()
appWindow.frameSwapped()
}
Item{
id: windowContent
width: parent.width
height: parent.height
Label{
anchors.centerIn: parent
font.pointSize: 24
text: "1"
}
Item {
id: foo
width: 100; height: 100
Rectangle { x: 5; y: 5; width: 60; height: 60; color: "red" }
Rectangle { x: 20; y: 20; width: 60; height: 60; color: "orange" }
Rectangle { x: 35; y: 35; width: 60; height: 60; color: "yellow" }
}
Button{
anchors.verticalCenterOffset: 24
anchors.centerIn: parent
text: "Test Button"
onClicked: {
visible= false
}
}
}
Window{
id: secondWindow
visible: true
screen: Qt.application.screens[1]
property alias frame: frameImage.source
Image {
id: frameImage
}
Component.onCompleted: {
showFullScreen()
}
}
}
}
}

@ -0,0 +1,5 @@
<RCC>
<qresource prefix="/">
<file>main.qml</file>
</qresource>
</RCC>
Loading…
Cancel
Save