qt for android 截屏,从全屏Qt快速应用程序内部截屏

这是我最初的问题:

我只想拍摄全屏QtQuick 2应用程序的屏幕截图(使用打印键).但是我得到的只是一张黑色或白色的屏幕截图.当应用程序未以全屏模式启动时,它将起作用.

我以为我在这里发布了一个非常好的解决方案,

即使它不能解决使用外部工具拍摄屏幕截图的原始问题.

从接受的答案的建议开始,我做了以下工作:

首先,我在QML主类中添加了一个信号(在main.qml中)

signal takeScreenShot()

按下某个按钮可发出该信号.

然后我在QML代码旁边编写了一个C / QT类来处理此信号:

class QMLSupplement : public QObject

{

Q_OBJECT

public:

QQuickView* view;

public:

QMLSupplement(QObject* parent = 0);

public slots:

void takeScreenShot();

};

对QQuickView的引用用于截屏.

void QMLSupplement::takeScreenShot()

{

QString file;

file = QDateTime::currentDateTime().toString("yyyy-MM-dd_hhmmss");

file += ".png";

qDebug() << "taking screenshot, saving here:" << file;

view->grabWindow().save(file);

}

最后,我将信号和main.cpp中的插槽连接起来:

int main(int argc, char *argv[])

{

QGuiApplication app(argc, argv);

QQuickView view;

view.setSource(QUrl::fromLocalFile("./qml/main.qml"));

view.setResizeMode(QQuickView::SizeRootObjectToView);

QObject* rootObject = (QObject*) view.rootObject();

QMLSupplement supplement;

supplement.view = &view;

QObject::connect(rootObject, SIGNAL(takeScreenShot()),

&supplement, SLOT(takeScreenShot()));

view.show();

// view.showFullScreen();

return app.exec();

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值