要想在Qt中实现屏幕或窗口截图功能 ,一般有两种方法:函数
1 -- 使用 QPixmap 类
ui
2 -- 使用 QScreen类
spa
然而虽然俩两种方法用到的类不相同,可是调用到的类成员函数的函数名称和参数倒是相同的code
都是 grabWindow() 这个函数 blog
所不一样的是,QPixmap中的 grabWindow()函数 是静态成员io
QScreen中的grabWindow()成员是非静态成员class
下面展现两种截屏的方法构造函数
QPixmap方法map
//截屏并保存为 123.jpg QPixmap::grabWindow(QApplication::desktop()->winId()).save("123","jpg"); /**************************************************************** 要注意的是 QApplication::desktop()->winId(),返回的是 要截屏的窗口的ID , 设为0 表示当前桌面 ,截屏时就会截全屏 ******************************************************************/
注:这种方法在Qt5中已通过时 , 应该使用QScreen方法代替方法
QScreen方法
1 //功能一样是截屏 , 注:QScreen的构造函数是私有的 2 QScreen *screen = QGuiApplication::primaryScreen(); 3 screen->grabWindow(0).save("123","jpg");