![](/img/trans.png)
[英]How do I grab a QPixmap of a QtDataVizualisation in a QWidget and save to file?
[英]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.