一:截取整个屏幕
它就是QScreen类的grabWindow函数.
参数是窗口ID和要截取的区域(x、y、width和height组成的矩形区域)。
窗口ID可以通过QWidget的winId()获得,若截取整个屏幕窗口ID传入0。
如 QScreen *screen = QGuiApplication::primaryScreen(); // 这个是有界面的, 获取电脑的当前设置的主屏幕 还有类似函数 QApplication::primaryScreen();无ui界面的
QPixmap pximap = creen->grabWindow(0);
pximap.save(filePathName, "jpg");
如果你的应用程序是无界面的,直接使用QCoreApplication即可,如果是gui相关,但没有使用widgets模块的就使用QGuiApplication,否则使用QApplication。
继承关系:
QApplication <- QGuiApplication <- QCoreApplication <- QObject
二:截取某个控件(QWidget)
调用QWidget的grab方法
QPixmap p = this->grab(QRect(0, 0, 1000, 800));
p.save(filePathName,"png");