Qt:QFileDialog

news2024/11/15 21:37:52

目录

一、介绍

二、功能

三、具体事例

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.coloradmin.cn/o/1436187.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于Java超市管理系统设计与实现(源码+部署文档)

博主介绍: ✌至今服务客户已经1000、专注于Java技术领域、项目定制、技术答疑、开发工具、毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精彩专栏 推荐订阅 👇🏻 不然下次找不到 Java项目精品实…

牛客网--------------小红统计区间(easy)

题目描述: 本题为easy版本,和hard版本的唯一区别是aia_iai​保证是正整数! 小红拿到了一个数组,她想知道,有多少非空区间满足区间所有元素之和不小于kkk? 输入描述: 输出描述: 输出一个整数表示满足条件的非…

Camunda流程引擎数据库架构

💖专栏简介 ✔️本专栏将从Camunda(卡蒙达) 7中的关键概念到实现中国式工作流相关功能。 ✔️文章中只包含演示核心代码及测试数据,完整代码可查看作者的开源项目snail-camunda ✔️请给snail-camunda 点颗星吧😘 💖数据库架构…

WINDOWS搭建NFS服务器

下载并安装 Networking Software for Windows 启动配置 找到安装目录(如C:\Program Files\nfsd),双击nfsctl.exe,菜单Edit->Preferences 启动后: 配置Export Exports->Edit exports file 其他的几句我都删除…

[Linux] 网络编程套接字

目录 预备知识 网络字节序 网络字节序和主机字节序转换的库函数 socket编程接口 socket常见API sockaddr结构 套接字的种类 预备知识 1.在IP数据包头部中,有两个IP地址,分别叫做源IP地址和目的IP地址。 2.端口号:是传输层协议的内容…

速过计算机二级python——第八讲:基本编程

第八讲:基本编程 基本编程题【15 分】简单应用题【25 分】综合应用题【20 分】**问题一**【5分】问题二【5 分】问题二【10 分】小结基本编程题【15 分】 考生文件夹下存在一个文件 PY101.py,请写代码替换横线,不修改其他代码,实现以下功能:【5 分】键盘输入正整数 n,按要…

EMNLP 2023精选:Text-to-SQL任务的前沿进展(上篇)——正会论文解读

导语 本文记录了今年的自然语言处理国际顶级会议EMNLP 2023中接收的所有与Text-to-SQL相关(通过搜索标题关键词查找得到,可能不全)的论文,共计12篇,包含5篇正会论文和7篇Findings论文,以下是对这些论文的略…

国图公考:公务员面试资格复审需要准备什么?

参加国考面试的考生在资格审核阶段需要准备以下材料: 1、本人身份证、学生证或工作证复印件。 2、公共科目笔试准考证复印件。 3、考试报名登记表。 4、本(专)科、研究生各阶段学历、学位证书(应届毕业生没有可以暂时不提供)。 5、报名资料上填写的各类证书材料…

Debezium发布历史103

原文地址: https://debezium.io/blog/2021/03/18/understanding-non-key-joins-with-quarkus-extension-for-kafka-streams/ 欢迎关注留言,我是收集整理小能手,工具翻译,仅供参考,笔芯笔芯. 了解 Kafka Streams 的 Q…

文心一言用户规模破亿 /微软宣布:支付费用延长旧版Windows 10使用寿命|魔法半周报

我有魔法✨为你劈开信息大海❗ 高效获取AIGC的热门事件🔥,更新AIGC的最新动态,生成相应的魔法简报,节省阅读时间👻 🔥资讯预览 百度大模型重要突破,文心一言用户规模破亿,飞桨开发者…

LeetCode、198. 打家劫舍【中等,一维线性DP】

文章目录 前言LeetCode、198. 打家劫舍【中等,一维线性DP】题目及分类思路线性DP(一维) 资料获取 前言 博主介绍:✌目前全网粉丝2W,csdn博客专家、Java领域优质创作者,博客之星、阿里云平台优质作者、专注…

Netty源码 之 bind绑定流程

1.Netty框架总览 Netty是一个基于NIO异步通信框架 Netty框架是由许多组件,优化的数据结构所构建成。 正是通过灵活的组件构建,优化后的数据结构,进而才能保证Netty框架面对高并发场景具有一定的能力 1.1 Netty相关组件 Netty重要的组件有…

SpringBoot中使用Spring自带线程池ThreadPoolTaskExecutor与Java8CompletableFuture实现异步任务示例

场景 关于线程池的使用: Java中ExecutorService线程池的使用(Runnable和Callable多线程实现): Java中ExecutorService线程池的使用(Runnable和Callable多线程实现)_executorservice executorservice executors.newfix-CSDN博客 Java中创建线程的方式…

Unity_ShaderGraph节点问题

Unity_ShaderGraph节点问题 Unity版本:Unity2023.1.19 为什么在Unity2023.1.19的Shader Graph中找不见PBR Master节点? 以下这个PBR Maste从何而来?

Arthas使用教程—— 阿里开源线上监控诊断产品

文章目录 1 简介2背景3 图形界面工具 arthas 阿里开源3.1 :启动 arthas3.2 help :查看arthas所有命令3.3 查看 dashboard3.4 thread 列出当前进程所有线程占用CPU和内存情况3.5 jvm 查看该进程的各项参数 (类比 jinfo)3.6 通过 jad 来反编译 …

【Chrono Engine学习总结】1-安装配置与程序运行

本文仅用于个人安装记录。 官方安装教程 https://api.projectchrono.org/8.0.0/tutorial_install_chrono.html Windows下安装 windows下安装就按照教程好了。采用cmake-gui进行配置,建议首次安装只安装核心模块。然后依此configure下irrlicht,sensor…

JVM 性能调优 - 参数调优(3)

查看 JVM 内存的占用情况 编写代码 package com.test;public class PrintMemoryDemo {public static void main(String[] args) {// 堆内存总量long totalMemory Runtime.getRuntime().totalMemory();// jvm 试图使用的最大堆内存long maxMemory Runtime.getRuntime().maxM…

国内游戏服务器价格表

游戏服务器租用多少钱一年?1个月游戏服务器费用多少?阿里云游戏服务器26元1个月、腾讯云游戏服务器32元,游戏服务器配置从4核16G、4核32G、8核32G、16核64G等配置可选,可以选择轻量应用服务器和云服务器,阿腾云atengyu…

PHP客服系统-vue客服聊天系统

PHP-Vue客服聊天系统是一款高效、灵活的客户服务解决方案,基于ThinkPHP6、Vue3和Workerman(Gateworker)框架开发,专为单商户场景打造。 系统亮点: 分布式部署支持,轻松应对高并发场景;本地消息存储功能,确…

Python 数据分析(PYDA)第三版(四)

原文:wesmckinney.com/book/ 译者:飞龙 协议:CC BY-NC-SA 4.0 八、数据整理:连接、合并和重塑 原文:wesmckinney.com/book/data-wrangling 译者:飞龙 协议:CC BY-NC-SA 4.0 此开放访问网络版本的…