Как использовать GrabWindow? - PullRequest
0 голосов
/ 03 мая 2018

Я нашел класс GrabWindow, но я новичок в Qt Quick 2 и не могу понять, как его использовать.
Может кто-нибудь объяснить, как я могу использовать это представление?
В этот момент я добавил в свою основную функцию:

#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include <QtQml>
#include "grabwindow.h"

int main(int argc, char *argv[]) {
    QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);

    QGuiApplication app(argc, argv);

    qmlRegisterType<GrabWindow>("test", 1, 0, "GrabWindow");

    QQmlApplicationEngine engine;

    engine.load(QUrl(QStringLiteral("qrc:/qml/SystemTray.qml")));
    if (engine.rootObjects().isEmpty()) {
        return -1;
    }

    GrabWindow grabWnd;
    grabWnd.setResizeMode(QQuickView::SizeViewToRootObject);
    grabWnd.setSource(QUrl(QStringLiteral("qrc:/qml/main.qml")));
    grabWnd.setFlags(Qt::Popup);
    grabWnd.show();

    return app.exec();
}

И мой main.qml:

import QtQuick 2.9
import QtQuick.Controls 2.2

ApplicationWindow {
    id: window
    visible: true
    width: 320
    height: 480
    title: qsTr("test")
}

Но на старте я получаю только это:
Screenshot

Как получить скриншот с помощью этого класса и убрать квадрат в левом верхнем углу экрана?

ДОБАВЛЕНО
Я использую Ubuntu 17.10

...