小编use*_*301的帖子

如何在没有QQuickView的情况下获取QML应用程序的截图

我想抓住我的QML应用程序的屏幕.但我的根QML对象是ApplicationWindow,所以我不能QQuickView用来显示它.相反,我必须使用QQmlApplicationEngine.我知道如何使用QQuickView(QQuickWindow::grabWindow)获取屏幕截图,但不知道如何使用它QQmlApplicationEngine.

我的main档案:

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    ApplicationData appData;
    QQmlApplicationEngine engine;
    engine.load(QUrl("qrc:///main.qml"));
    return app.exec();
}
Run Code Online (Sandbox Code Playgroud)

main.qml :

import QtQuick 2.1
import QtQuick.Controls 1.1
import QtQuick.Window 2.1


ApplicationWindow {
    id: mainWindow
    width: appData.screenWidth
    height: appData.screenHeight
    visible: true

    Rectangle {
        id: mainWindowBackground
        color: "red"
        anchors.fill: parent
    } 

    //...
}
Run Code Online (Sandbox Code Playgroud)

qt screenshot qml qtquick2 qtquickcontrols

7
推荐指数
1
解决办法
2680
查看次数

标签 统计

qml ×1

qt ×1

qtquick2 ×1

qtquickcontrols ×1

screenshot ×1