一、项目介绍
利用QScreen类相关操作实现截屏操作,并将截屏保存为png文件。
二、项目基本配置
新建一个Qt案例,项目名称为“ScreenTest”,基类选择“QWidget”,点击选中创建UI界面复选框,完成项目创建。
三、UI界面设计
UI界面如下:
界面中只创建了一个控件,其名称和类型如下:
序号 | 名称 | 类型 | 属性 |
---|---|---|---|
① | PushButton | QPushButton | text:截屏操作 |
四、主程序实现
4.1 widget.h头文件
在头文件中声明槽函数:
private slots:
void on_pushButton_clicked();
4.2 widget.cpp源文件
源文件中定义槽函数:
//按钮点击槽函数
void Widget::on_pushButton_clicked()
{
QScreen *screen=QGuiApplication::primaryScreen();//保留应用程序的主屏幕(最初显示QWindows的屏幕)
//创建并返回一个pixmap,它通过抓取受QRect(x、y、width、height)限制的给定窗口的内容来构造。如果窗口为0,则整个屏幕将被抓取。
QPixmap originalPixmap = screen->grabWindow(0,0,0,QApplication::desktop()->width(), QApplication::desktop()->height());
QString format = "png";//保存文件的后缀
QString initialPath = QDir::currentPath() + tr("/untitled.") + format;//默认名称
QString fileName = QFileDialog::getSaveFileName(this, tr("Save As"),
initialPath,
tr("%1 Files (*.%2);;All Files (*)")
.arg(format.toUpper()) //将format字符串大写
.arg(format));
if (!fileName.isEmpty())
{
originalPixmap.save(fileName, format.toLatin1());
QMessageBox::information(this,"success","截屏保存成功");//提示保存成功
}
}
五、效果演示
完整效果如下:
截屏图像如下:
【注意事项】:
- 注意一定要在开头包含
<QDesktopWidget>
头文件,不然容易报错;
如果没有看懂的话,完整代码可以参考:https://download.csdn.net/download/didi_ya/80258153
ok,以上便是本文的全部内容了,如果对你有所帮助,记得点个赞哟~