实现:截取整个屏幕以后图片保存到指定的地方
cpp里添加头文件:
#include <QDesktopWidget> //桌面部件
#include <QWindow> //窗口
#include <QScreen> //屏幕
#include <QPixmap> //像素图
#include <QFileDialog> //文件对话框
ui界面拖入一个 push button 控件 ,转到clicked()信号槽,代码如下:
void MyDialog::on_pushButton_clicked()
{
QWindow window;
//grabWidow:创建并返回通过抓取由QRect(x,y,width,height)限制的给定窗口的内容构造的像素图。
QPixmap grab = window.screen()->grabWindow(QApplication::desktop()->winId());
/*
getSaveFileName参数:
参数一:使用给定的父窗口小部件创建模态文件对话框
参数二:对话框窗口标题
参数三:工作目录
参数四:过滤器
*/
QString fileName = QFileDialog::getSaveFileName(this,tr("save Image"),"/Exercise/",tr("Image(*.png);;Image(*.jpg)"));
grab.save(fileName);
}
grabWindow()函数从屏幕上抓取像素,而不是从窗口抓取像素,即如果有一个部分或完全超过您抓取的窗口的另一个窗口,您也可以从上面的窗口获取像素。 通常不会抓取鼠标光标。