繁体   English   中英

如何获取已覆盖硬件的QPixmap?

[英]How can I grab a QPixmap of a widget that's hw overlayed?

我正在尝试获取小部件的QPixmap,但该小部件已被覆盖。 在我切换显卡之前,它一直可以工作。 有问题的代码是:

...
QByteArray ba;
QBuffer buffer(&ba);
buffer.open(QIODevice::WriteOnly);
ui->viewFinder->grab().save(&buffer, "JPG");
...

取景器小部件是QCameraViewfinder。 Qt4小部件应用程序在Archlinux上。 有什么方法可以禁用特定窗口小部件上的覆盖或捕获它的方法? 尝试使用ksnapshot捕获它。

显然,我不得不问一个问题来解决这个问题。

QPixmap :: grabWindow会抓取该小部件,即使其硬件已覆盖也是如此。 我从ksnapshot源代码中挖掘了信息。

因此示例代码将是:

QPixmap::grabWindow(ui->viewFinder->winId(), 0, 0, -1, -1).save(&buffer, "JPG");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM