qt初入门2:qt选择一个文件或者目录,获取当前目录,操作文件目录等整理

最近用qt操作文件或者目录的动作比较多,简单整理一下常用的接口,方便回顾。

总的来说,其实就是用文件选择对话框QFileDialog类,以及操作文件信息的QFileInfo类,以及相关QCoreApplication中静态成员函数获取一些信息,qDir类。

1:获取当前目录,一般默认也是当前目录。

void Dialog::on_pbn_getcurdir_clicked()
{QString cur_string = QApplication::applicationDirPath(); //可执行文件的目录路径QString cur_string1 = QApplication::applicationFilePath(); //可执行文件的路径QString cur_dir = QDir::currentPath(); //获取当前工作目录路径  其他获取主目录,临时目录,磁盘列表,求绝对路径ui->le_display->append("cur_string:"+cur_string);ui->le_display->append("cur_string1:"+cur_string1);ui->le_display->append("cur_dir:"+cur_dir);
}

2:可以设置一个目录,下次打开默认基于该目录。

或者保存最后一次用户打开的目录,做使用。

//在打开文件或者目录时  一般可以设置默认打开的目录 这里要借助全局或者成员变量
static QString default_dir = QDir::currentPath();
void Dialog::on_pbn_setdefdir_clicked()
{//打开一个目录 父对象指针  标题栏  初始目录//DontResolveSymlinks:不解析符号链接,而是直接显示链接的路径。//ShowDirsOnly:仅显示目录,过滤掉文件。//ReadOnly:只读模式,在对话框中禁止创建新目录。default_dir = QFileDialog::getExistingDirectory(this, "选择默认目录",default_dir, QFileDialog::ShowDirsOnly);ui->le_display->append("设置默认打开目录为:"+default_dir+",需要存储信息,后面再次使用。");
}

3:选择文件和目录,基于上面设置的默认目录。

void Dialog::on_pbn_file_clicked()
{//打开一个文件,借助QFileDialog,目录可以用上面设置的,方便操作//父对象 标题栏  初始目录 过滤文件类型m_file_name = QFileDialog::getOpenFileName(this, "选择一个文件", default_dir, "Text Files (*.txt);;All Files (*)");ui->le_file_name->setText(m_file_name);ui->le_display->append("选择一个文件:"+m_file_name);
}void Dialog::on_pbn_dir_clicked()
{m_dir_name = QFileDialog::getExistingDirectory(this, "选择一个目录",default_dir, QFileDialog::ShowDirsOnly);ui->le_dir_name->setText(m_dir_name);ui->le_display->append("选择一个目录:"+m_dir_name);
}

4:选择一个文件后获取是字符串,获取文件路径目录。

//这里主要借助QFileInfo 类和qDir类
void Dialog::on_pbn_getfile_dir_clicked() //获取已经选择文件的路径
{QFileInfo fileinfo(m_file_name); //也可以是一个目录QString reall_filedir = fileinfo.dir().absolutePath(); //获取绝对路径QString reall_filename = fileinfo.fileName();ui->le_display->append("选择文件的目录为:" + reall_filedir);
}

5:选择一个文件后,获取真实文件名等其他方法

#include <QDateTime>
void Dialog::on_pbn_getfile_name_clicked() //获取已经选择文件的实际文件名
{QFileInfo fileinfo(m_file_name); //相关文件的操作都是借助于QFileInfo 可以探索其他QString reall_filename = fileinfo.fileName();ui->le_display->append("选择文件的文件名为:" + reall_filename);ui->le_display->append("选择文件的路径为:"+fileinfo.filePath());ui->le_display->append("选择文件的绝对路径为:"+fileinfo.absoluteFilePath());ui->le_display->append("选择文件的最后修改时间:"+fileinfo.lastModified().toString());
}

6:要生成目标文件,基于选择的文件,做文件名处理。

这里文件的拷贝,重命名等都只是接口

void Dialog::on_pbn_file_add_suffix_clicked()
{QFileInfo fileinfo(m_file_name);//需要对目录进行处理 比如要生成一个目标文件在源文件基础上加个后缀QString dst_filename = fileinfo.dir().absolutePath()+"/"+fileinfo.baseName()+"_后缀"+"."+fileinfo.suffix();ui->le_display->append("处理后目标文件为:"+dst_filename);//如果要遍历一个目录 可以用QDir类 entryList
}

7:简单运行:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/608683.shtml

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

相关文章

docker部署kibana

1&#xff0c;简介 官网 kibana 2&#xff0c;安装docker 参考 linux安装docker 3&#xff0c;准备 Kibana 配置文件 # 进入主节点配置文件目录 cd /export/server/docker/kibana/config # 编辑单机版配置文件 vi kibana.ymlkibana.yml内容 # 主机地址&#xff0c;可以是…

Java后端返回的MySQL日期数据在前端格式错误的解决方法,区分jackson和fastjson

写在前面 在写web项目的时候经常会遇到后端返回的MySQL日期数据(date)类型在前端显示不正确的情况&#xff0c;有的时候会出现一串数字的时间戳&#xff0c;有的时候显示为日期晚了一天。 这是因Json给前端返回数据的时候格式问题造成的 解决方法 其实总结起来就是一句话在…

大模型笔记【2】 LLM in Flash

Apple最近发表了一篇文章&#xff0c;可以在iphone, MAC 上运行大模型&#xff1a;【LLM in a flash: Efficient Large Language Model Inference with Limited Memory】。 主要解决的问题是在DRAM中无法存放完整的模型和计算&#xff0c;但是Flash Memory可以存放完整的模型。…

代码训练营Day.28 | 93. 复原IP地址、78. 子集、90. 子集II

93. 复原IP地址 1. LeetCode链接 . - 力扣&#xff08;LeetCode&#xff09; 2. 题目描述 3. 解法 字符串切四刀&#xff0c;最后一刀必须是在末位。 麻烦的地方在于文本的各种限制条件、剪枝等等。 class Solution { public:vector<string> results;string result…

最优化理论复习--最优性条件(二)

文章目录 上一篇约束极值问题的最优性条件基本概念一般情况的约束类型最优化条件 上一篇 最优化理论分析复习–最优性条件&#xff08;一&#xff09; 约束极值问题的最优性条件 基本概念 凸规划 m i n f ( x ) min f(x) minf(x) s . t . { g i ( x ) ≥ 0 &#xff0c; …

Android Matrix (二)具体图形变换参数的获取

Android Matrix &#xff08;二&#xff09;具体图形变换参数的获取 Matrix 类在 Android 中用于表示 3x3 的变换矩阵。这个矩阵可以应用于画布&#xff08;Canvas&#xff09;&#xff0c;视图&#xff08;View&#xff09;或者位图&#xff08;Bitmap&#xff09;&#xff0…

服务器日常维护要素,应该如何做好维护

维护服务器的目的是为了让服务器的性能保持最佳状态&#xff0c;发现问题及时解决&#xff0c;没有问题也可以对相关的应用和配置进行调优。但也有很多用户疑问&#xff0c;服务器具体会有哪些方面需要维护的&#xff0c;今天就一起来看看吧。 服务器日常维护&#xff0c;主要包…

Python基础入门第九课笔记(文件和文件夹)

1&#xff0c;新建文本并且写内容 a open(1.text,w) a.write("""aaa bbb ccc""") a.close() 2,seek( )移动文件指针 文件对象.seek(偏移量&#xff0c;起始位置) # 起始位置&#xff1a;0开头&#xff0c;1当前位置&#xff0c;2文件结尾…

7+坏死性凋亡+分型+预后模型+实验,筛坏死性凋亡相关基因并建模

今天给同学们分享一篇生信文章“MLKL and other necroptosis-related genes promote the tumor immune cell infiltration, guiding for the administration of immunotherapy in bladder urothelial carcinoma”&#xff0c;这篇文章发表在Apoptosis期刊上&#xff0c;影响因子…

【新华三】IPsec VPN 实验配置(地址固定)

【新华三】IPsec VPN 实验配置&#xff08;地址固定&#xff09; 注意实验需求配置思路配置命令拓扑R1基础配置配置第一阶段 IKE SA配置第二阶段 IPsec SA ISP_R2基础配置 R3基础配置配置第一阶段 IKE SA配置第二阶段 IPsec SA PCPC1PC2 检查建立成功查看命令清除IKE / IPsec S…

分享几个网盘资源搜索地址,总能找到你想要的

目录 [TOC](目录)一、前言二、地址分享三、结尾 一、前言 分享几个网盘搜索网站&#xff0c;总能找到你想要的。 二、地址分享 盘搜搜: https://pansoso.com/ 搜网盘: https://www.swangpan.com/ fastsoso: https://www.fastsoso.cc 猫狸盘搜: https://www.alipansou.com…

虚拟机安装intel架构的银河麒麟V10(SP1)

一 背景 银河麒麟是国产操作系统之一&#xff0c;是基于Linux内核的桌面操作系统&#xff0c;有自己的应用中心&#xff0c;具有一定的生态系统。今从官网下载了V10&#xff08;SP1&#xff09;镜像文件&#xff0c;在Windowns的VMware虚拟机上安装试用。 二 安装 1、 首先安装…

【漏洞复现】锐捷RG-UAC统一上网行为管理系统信息泄露漏洞

Nx01 产品简介 锐捷网络成立于2000年1月&#xff0c;原名实达网络&#xff0c;2003年更名&#xff0c;自成立以来&#xff0c;一直扎根行业&#xff0c;深入场景进行解决方案设计和创新&#xff0c;并利用云计算、SDN、移动互联、大数据、物联网、AI等新技术为各行业用户提供场…

桶装水在线订水送水系统平台搭建

在线订水系统&#xff0c;为您带来更快捷、更优质的服务。不仅是用户福音&#xff0c;更是商家营销利器。一体化管理&#xff0c;轻松搞定用户、水站、商品、订单及售后。多种营销活动&#xff0c;激发用户复购意愿。 功能亮点如下&#xff1a; 1. 注册登录&#xff1a;手机号…

Mysql 恢复误删库表数据

一、前提 1、如果你的数据库有备份文件&#xff0c;自己还原即可。 2、如果没有备份文件&#xff0c;那首先检查下你的 binlog 是否开启。如果未开启&#xff0c;那你就不用往下看了。如果开启了&#xff0c;可以往下看看。 1.1 查看位置 可以通过以下的命令查看是否开启了 bi…

梯度下降和反向传播:能改

一、背景 1.问题 通过顶点坐标公式&#xff0c;求解出抛物线最低点的w坐标&#xff0c;得到了让误差代价最小的w。同样的&#xff0c;也通过算数说明了这种一步到位求解的方式固然是好&#xff0c;但是在输入特征过多、样本数量过大的时候&#xff0c;却非常消耗计算资源。 …

echarts - xAxis.type设置time时该如何使用formatter的分级模板

echarts 文档中描述了x轴的多种类型 一、type: ‘value’ ‘value’ 数值轴&#xff0c;适用于连续数据。 此时x轴数据是从零开始&#xff0c;有数据大小的区分。 【注意】 因为xAxis.data是为category服务的&#xff0c;所以xAxis.data里面设置的数据无效。 二、type: ‘ca…

前端适配750px设计稿

全局引入 (function(doc, win) {const docEl doc.documentElement,resizeEvt orientationchange in window ? orientationchange : resizeconst setFont function() {let clientWidth docEl.clientWidth;if (!clientWidth) return;if (clientWidth > 750) {docEl.styl…

【自学笔记】01Java基础-07面向对象基础-03常量、枚举类、抽象类、多态详解

记录java基础学习中有关常量、枚举类、抽象类和多态的内容。 1 常量 什么是常量&#xff1f; 常量是使用了public static final修饰的成员变量&#xff0c;必须有初始化值&#xff0c;而且执行的过程中其值不能被改变。 常量名的命名规范&#xff1a;英文单词全部大写&#x…

【JAVA】throw 和 throws 的区别?

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a; JAVA ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 正文 throw&#xff1a; throws&#xff1a; 区别&#xff1a; 作用&#xff1a; 使用位置&#xff1a; 个数&#xff1a; 应…