我想这里显示的代码:How to take ScreenShot Qt/QMLQQuickWindow :: grabWindow:场景图已经在使用
在执行时我正在写在标题中的错误。
我的main.cpp是:
#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include <QQuickWindow>
#include <QImage>
#include <QDebug>
#include "screenshot.h"
#include <QQuickView>
#include <QQmlContext>
int main(int argc, char *argv[])
{
QGuiApplication app(argc, argv);
const char* drigUi = "DrigUI";
qmlRegisterType <screenCapture> (drigUi, 1, 0, "ScreenShot");
QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
return app.exec();
}
我用这个捕获功能:
void screenCapture::capture(QString const &path) const
{
QImage img = currentView_->grabWindow();
img.save(path);
}
,并添加在构造函数如下:
currentView_ = new QQuickView;
我main.qml:
import QtQuick 2.4
import QtQuick.Window 2.2
import DrigUI 1.0
Window
{
visible: true
height: 370
width: 370
ScreenShot { id: screenShot }
Rectangle
{
id: ll
height: 30
width: 50
x: 180; y: 0; color: "red"
MouseArea
{
anchors.fill: parent
onClicked: screenShot.capture ("l.png")
}
}
}
是什么错误呢?有什么办法解决它?我可以在这里提供什么信息?
你可以提供你的main.qml。最小化为SSCCE,重现该问题。 –
@SaZ我可能没有提供。它不包含任何非常重要的内容。现在,我会像你说的那样在这里。 –
@SaZ完成。什么是SSCCE? –