首页 > 其他分享 >QT实现将截屏保存为图片实践

QT实现将截屏保存为图片实践

时间:2023-11-07 21:01:32浏览次数:40  
标签:QT format screenPixmap tr 实践 current 截屏 QString

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实现将截屏保存为图片实践_QT

标签:QT,format,screenPixmap,tr,实践,current,截屏,QString
From: https://blog.51cto.com/u_12668715/8239544

相关文章

  • DDD技术方案落地实践
    1.引言从接触领域驱动设计的初学阶段,到实现一个旧系统改造到DDD模型,再到按DDD规范落地的3个的项目。对于领域驱动模型设计研发,从开始的各种疑惑到吸收各种先进的理念,目前在技术实施这一块已经基本比较成熟。在既往经验中总结了一些在开发中遇到的技术问题和解决方案进行分享。......
  • qt 配置文件 settings
     Qt如何读取和写入配置文件的数据呢?_qt配置文件读写-CSDN博客 这篇写的很好,照着做成功了,能读写配置文件配置文件的路径在构造函数中设置。Qt使用QSetting对ini配置文件进行读取和写入_.ini文件读写qsetting-CSDN博客......
  • 混合云中 DevOps 的最佳实践
    近年来,出现了各种工具、技术和框架,其目标是增强灵活性、性能和可扩展性。传统的整体方法已被微服务和纳米服务等更加模块化的方法所取代。此外,云计算的兴起导致本地软件被云环境所取代,云环境提供了以前无法提供的广泛优势和功能。能够通过适应云设置来优化速度和效率是一项至关重要......
  • DDD技术方案落地实践 | 京东云技术团队
    1.引言从接触领域驱动设计的初学阶段,到实现一个旧系统改造到DDD模型,再到按DDD规范落地的3个的项目。对于领域驱动模型设计研发,从开始的各种疑惑到吸收各种先进的理念,目前在技术实施这一块已经基本比较成熟。在既往经验中总结了一些在开发中遇到的技术问题和解决方案进行分享。因为......
  • PyQt5-如何设置应用和窗口的图标?控件的提示信息如何设置?
    (PyQt5-如何设置应用和窗口的图标?控件的提示信息如何设置?)1如何设置应用和窗口的图标?1.1导入需要的包QApplication类是PyQt5的应用程序类;QMainWindow类是一个主窗口类;QIcon类用于创建和管理图标;ctypes是python的一个函数库,提供和C语言兼容的数据类型,可以直接调用动态链接......
  • 看我一行代码起飞,Glide加载gif优化实践
    前言最近项目中有使用到gif动画,加上本身已经引入了Glide(支持gif)库,所以便用Glide来加载了;但在使用过程中还是遇到了不少困难,在此记录下,希望可以给遇到类似问题的你一些思考和建议。一、Glide加载gif1.在项目中添加依赖dependencies{compile'com.github.bumptech.glide:glide:4......
  • QT发起http/https请求
    示例1、在.pro工程描述文件中添加网络模块QT+=network2、示例代码#ifndefMAINWINDOW_H#defineMAINWINDOW_H#include<QMainWindow>#include"ui_mainwindow.h"#include<QDebug>#include<QWidget>#include<QObject>#include<QHttpMultiPar......
  • Qt事件循环及QEventLoop的使用
    目录一、介绍二、QCoreApplication主事件循环三、事件循环的开启例一例二四、父子事件传递五、processEvents六、QEventLoop类七、事件循环的嵌套及QEventLoop模拟同步调用1、同步获取数据2、主线程等待3、对话框弹出一、介绍Qt作为一个跨平台的UI框架,其事件循环实现原理......
  • HDFS Balancer存储水位稳定性原理与实践
    1.背景在HDFS分布式系统中,经常会上线新的datanode以环境集群容量不足的问题。但是往往旧datanode水位较高,甚至爆满无法写入,新datanode非常空闲,导致旧机器无法写入数据,集群的流量集中到新datanode中,造成新datanode网络延迟。为了解决上述问题,可以通过Balancer工具定时讲高水位dat......
  • QT代码实现将图片镜像翻转效果
    QT代码实现将图片镜像翻转效果将图片原图和镜像图合并输出,实现图片镜像功能快速显示效果在UI拖入一个QPushButton,一个QLabel用于缩放显示效果voidWidget::on_pushButton_clicked(){QStringpath=QDir::currentPath();//ui->m_fileEdit->setText(path);//打......