距离上一次最后写一个qt项目又过去了11天,中间因为忙别的事情也没有看过任何qt的代码,周六日拿出来qt的项目一看代码有点认不全了(记忆力不太好),赶紧写个demo熟悉一下,之前在写录制gif文件的时候有用到过QScreen这个类。这次就用这个类写一个截屏的demo。首先先看一个demo来说明一下这个类的用法。
QImage pix;
pix.load(":./giphy.gif");
painter.drawImage(0,0,pix);
QScreen *screen = QApplication::primaryScreen(); //实例化QScreen
QPixmap pixs = screen->grabWindow(0, 40, 40,100,100); //抓取区域
QImage image = pixs.toImage().convertToFormat(QImage::Format_RGBA8888);
painter.drawImage(0,0,image);
这是整个图片
这是执行上面代码截取区域里面的图片
上述用一张图片来演示的QScreen类的用法,在屏幕截图中,用法和上述一致,区别就是截取的x,y,w,h会随着鼠标的移动而变化。