当前位置: 首页 > news >正文

Qt:QFileDialog

目录

一、介绍

二、功能

三、具体事例

1、将某个界面保存为图片,后缀名可选PNG、JPEG、SVG等


一、介绍

QFileDialog提供了一个对话框,允许用户选择文件或者目录,也允许用户遍历文件系统,用以选择一个或多个文件或者目录。

QFileDialog继承了QDialog,具有父类的各种方法。

二、功能

QFileDialog::getOpenFileName()    //获取一个打开文件的文件名
QFileDialog::getOpenFileNames()   //获取多个打开文件的文件名
QFileDialog::getOpenFileUrl()     //获取一个打开文件的统一资源定位符
QFileDialog::getOpenFileUrls()    //获取多个打开文件的统一资源定位符
QFileDialog::getSaveFileName()    //获取保存的文件名
QFileDialog::getSaveFileUrl()     //获取保存的url

三、具体事例

1、将某个界面保存为图片,后缀名可选PNG、JPEG、SVG等

这里界面取名为A。

//获取桌面路径
QString desktopPath = QStandardPaths::writableLocation(QStandardPaths::DesktopLocation);
//默认保存在桌面下,;;划分可选择的文件后缀
QString strPath = QFileDialog::getSaveFileName(this,"download",desktopPath,"Images(*.png);;Images(*.jpeg);;Images(*.svg)");
if(!strPath.isEmpty()){/**  法1  **///创建一个`QScreen`类型的指针变量`screen`,并将其指向当前系统的主显示屏的`QScreen`对象。可以使用这个指针来获取和操作主显示屏的相关信息QScreen *screen = QGuiApplication::primaryScreen();screen->grabWindow(A->winId()).save(strPath);/**  法2 **///避免了法1中 A界面一定是被打开的界面 这一限制QPixmap pix=A->grab(); 获取A的界面pix.save(strPath);
}

`A` 是一个指向图形界面组件的指针(可以是QWidget或其子类的实例)

`A->winId()` 获取该组件的窗口ID,这个ID可以用于标识操作系统层面的窗口对象。

`screen->grabWindow()` 是捕获指定窗口ID的图像,返回一个`QPixmap`对象,它包含了捕获的图像数据。

`save(strPath)` 方法是对`QPixmap`对象调用的,它将图像保存到由`strPath`指定的文件路径。保存的格式将基于路径的扩展名。

【注意】如果A界面没有打开,保存出来的就是全黑的图!

 显示:

http://www.lryc.cn/news/295322.html

相关文章:

  • 我的QQ编程学习群
  • 【C++】类与对象(四)——初始化列表|explicit关键字|static成员|友元|匿名对象
  • ChatGPT高效提问—prompt常见用法
  • 使用vite创建vue+ts项目,整合常用插件(scss、vue-router、pinia、axios等)和配置
  • 泛型、Trait 和生命周期(上)
  • <网络安全>《18 数据安全交换系统》
  • Kafka 生产调优
  • springboot162基于SpringBoot的体育馆管理系统的设计与实现
  • Interpolator:在Android中方便使用一些常见的CubicBezier贝塞尔曲线动画效果
  • Nacos安装,服务注册,负载均衡配置,权重配置以及环境隔离
  • Vue3导出数据为txt文件
  • Simulink中getConfigSet用法
  • 【Algorithms 4】算法(第4版)学习笔记 05 - 2.2 归并排序
  • mybatis mapper sql include用法实现sql块复用
  • 正点原子--STM32通用定时器学习笔记(2)
  • Flask实现异步调用sqlalchemy的模型类
  • Pocket2Mol + Generation of Atom Positions生成原子位置的方法有什么?联合概率是什么?
  • 区分手机小程序以及电脑小程序;左滑、导航键返回拦截
  • Web APIs 2 事件
  • 网易腾讯面试题精选----90道设计模式面试题及答案
  • 程序员的数字化工作台:理解不关机背后的逻辑与需求
  • Java Socket Server TCP服务端向指定客户端发送消息
  • java日志框架总结(五、logback日志框架)
  • android下library打包aar并上传到maven,嵌入版的app
  • Xampp中Xdebug的安装使用
  • 金融行业的软件测试分析
  • 踩坑了,MySQL数据库生成大量奇怪的大文件
  • ctfshow-web11~20-WP
  • 2.5学习总结9
  • 删除.git的影响、git分支切换时注意事项