我正在尝试抓取窗口小部件的QPixmap,但是窗口小部件被重叠了。它曾经工作,直到我切换图形卡。有问题的代码是:
...
QByteArray ba;
QBuffer buffer(&ba);
buffer.open(QIODevice::WriteOnly);
ui->viewFinder->grab().save(&buffer, "JPG");
...
取景器小部件是QCameraViewfinder。 Qt4在Archlinux上的小部件应用程序。有没有办法禁用特定小部件上的重叠或捕获它?尝试使用ksnapshot捕获它。
答案 0 :(得分:1)
显然,我不得不提出一个问题来解决这个问题。
QPixmap :: grabWindow即使覆盖了硬件,也会抓取小部件。我从ksnapshot源代码中挖出了信息。
所以示例代码将是:
QPixmap::grabWindow(ui->viewFinder->winId(), 0, 0, -1, -1).save(&buffer, "JPG");