今天在使用QPixmap::grabWindow()截图时,弹出“QPixmap::grabWindow(): Unable to copy pixels from framebuffer”错误。
问题原因:QPixmap::grabWindow()这个函数适用于Qt5版本截屏,但该函数在Qt4上表现不稳定,经常出现“Unable to copy pixels from framebuffer”错误。
解决方法:建议改成QPixmap::grabWidget()来进行截图。
详细步骤,请查看第2节【修复代码B】。
1 原始代码A
#include <QApplication>
#include <QPixmap>
#include <QScreen>
#include <QDebug>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
// 获取当前活动窗口的 ID
WId wi