Qt多线程截图时访问出错

qt的截图功能,个人感觉比较好用。

QT4:静态函数

QPixmap::grabWidget()
QPixmap::grabWindow()

QT5:非静态函数

QWidget::grab()
QScreen::grabWindow()

QScreen *screen = QGuiApplication::primaryScreen();
screen->grabWindow(0).save("TEM","PNG");

在使用QT4的截图功能时,由于用到了多线程,在线程中截屏,会报一个访问冲突的错误,但是在主线程中就没有问题。说明QT4的截图有使用限制,注意一下。

全屏任意截图思路:

  1. 截全屏(支持多个屏幕)
  2. 新建无边框界面将界面全屏
  3. 选择区域
  4. 保存图片

参考:

  1. my coding.net
  2. 我的GITHUB