QT代实现将截屏保存为图片实践
使用QGuiApplication::primaryScreen()可以取得当前屏幕,取得将QScreen->grabWindow(0)存入QPixmap即可。
这里可以看到QT的封装非常方便我们取得屏幕截图。
开始截屏 按扭代码
void TestWidget::on_pushButton_clicked()
{
this->hide();//隐藏当前窗口
Sleep(300);//延时
//QPixmap screenPixmap = QPixmap();
QScreen *scr = QGuiApplication::primaryScreen();
if (scr)
{
screenPixmap = scr->grabWindow(0);
QLabel *lb=ui->label;
lb->setPixmap(screenPixmap);
lb->setScaledContents(true);
}
this->show();//显示当前窗口
}
保存为 按扭代码
void TestWidget::on_pushButton_2_clicked()
{
QDateTime current_date_time = QDateTime::currentDateTime();
QString current_date = current_date_time.toString("yyyyMMddhhmmsszzz");
QString format = "jpg";
QString currentPath = QDir::currentPath() + tr("/截屏")+current_date+tr(".") + format;
QString fileName = QFileDialog::getSaveFileName(this, tr("保存为..."), currentPath,
tr("%1 文件(*.%2);;所有文件(*)")
.arg(format.toUpper())
.arg(format));
if (!fileName.isEmpty())
screenPixmap.save(fileName, format.toLatin1().constData());
}
测试效果
标签:QT,format,screenPixmap,tr,实践,current,截屏,QString From: https://blog.51cto.com/u_12668715/8239544