Qt中获取各种目录用法

qt通过QFileDialog获取文件路径&保存文件&选择文件夹 QT是一款常用的UI设计工具, 我们在日常开发中经常需要对文件或者文件夹进行操作,下面将介绍QT对于获取文件路径&保存文件&选择文件夹等场景的获取的伪代码.注:适用于各语言的QT,比如python的pyQT之类的。 阅读详情
AI摘要

本文深入探讨了Qt中路径管理的多种方法,包括QCoreApplication、QApplication、QDir、QDesktopServices和QStandardPaths的使用技巧,详细介绍了如何获取工程路径、库路径、主路径、数据路径等,并演示了文件操作和路径排序的方法。

一、QCoreApplication

1、常用路径

    qDebug() << QCoreApplication::applicationName();
    qDebug() << QCoreApplication::applicationDirPath();
    qDebug() << QCoreApplication::applicationFilePath();

分别对应的是
1、工程名称
2、工程路径
3、工程文件路径全称

输出

"leaner_path_test"
"/Users/yucheng/Applications/Learn_Qt/build-leaner_path_test-Desktop_Qt_5_14_2_clang_64bit-Debug/leaner_path_test.app/Contents/MacOS"
"/Users/yucheng/Applications/Learn_Qt/build-leaner_path_test-Desktop_Qt_5_14_2_clang_64bit-Debug/leaner_path_test.app/Contents/MacOS/leaner_path_test"

2、库路径

    qDebug() << QCoreApplication::libraryPaths();

输出的是连接的库路径

("/Users/yucheng/Qt5.14.2/5.14.2/clang_64/plugins", "/Users/yucheng/Applications/Learn_Qt/build-leaner_path_test-Desktop_Qt_5_14_2_clang_64bit-Debug/leaner_path_test.app/Contents/MacOS")

由于.libraryPaths()是QStringList类型的数据,所以格式和QString不同。

3、题外话

    qDebug() << QCoreApplication::applicationVersion();
    qDebug() << QCoreApplication::organizationName();
    qDebug() << QCoreApplication::organizationDomain();

在执行上述三句话时,出现的都是空字符串。
那是因为这些是开发商自行添加的版本、组织机构名称、组织机构领域。

使用以下语句即可

二、QApplication

QApplication是QCoreApplication的子类
具体的不用多说
和QCoreApplication用法一样

三、QDir

1、获取路径

    qDebug() << QDir::currentPath();
    qDebug() << QDir::homePath();
    qDebug() << QDir::rootPath();
    qDebug() << QDir::tempPath();

输出,具体看代码解释

"/Users/yucheng/Applications/Learn_Qt/build-leaner_path_test-Desktop_Qt_5_14_2_clang_64bit-Debug/leaner_path_test.app/Contents/MacOS"
"/Users/yucheng"
"/"
"/private/var/folders/sn/4s6c8fds6knc95wwt42nlqpw0000gp/T"

2、文件操作

    QDir dir;
    qDebug() << dir.exists("/Users/yucheng/try1");
    dir.mkdir("/Users/yucheng/try1");
    qDebug() << dir.exists("/Users/yucheng/try1");
    dir.rmdir("/Users/yucheng/try1");
    dir.cd("/Users/yucheng/try");
    qDebug() << dir.entryList();
    dir.setSorting(QDir::Size);
    qDebug() << dir.entryList();

输出

	false
	true
	(".", "..", "data", "f2.dat", "file.txt", "filea.txt", "fileb.txt", "filec.txt", "json", "svn软件", "test", "xia")
	("file.txt", "..", ".", "svn软件", "data", "test", "xia", "json", "f2.dat", "filec.txt", "fileb.txt", "filea.txt")

.setSorting()排序方式

方法实现
名称排序QDir::Name
时间QDir::Time
大小QDir::Size
默认QDir::Unsorted
目录优先QDir::DirsFirst
相反顺序QDir::Reversed
忽略大小写QDir::IgnoreCase

四、QDesktopServices for Qt4

QDesktopServices::storageLocation(QDesktopServices::HomeLocation);

五、QStandardPaths for Qt5

一共两种方式获得各种路径

    static QString writableLocation(StandardLocation type);
    static QStringList standardLocations(StandardLocation type);

1、.writableLocation()函数使用

    qDebug() << QStandardPaths::writableLocation(QStandardPaths::HomeLocation);
    qDebug() << QStandardPaths::writableLocation(QStandardPaths::DataLocation);
    qDebug() << QStandardPaths::writableLocation(QStandardPaths::TempLocation);
    qDebug() << QStandardPaths::writableLocation(QStandardPaths::CacheLocation);
    qDebug() << QStandardPaths::writableLocation(QStandardPaths::MusicLocation);
    qDebug() << QStandardPaths::writableLocation(QStandardPaths::FontsLocation);
    qDebug() << QStandardPaths::writableLocation(QStandardPaths::DesktopLocation);
    qDebug() << QStandardPaths::writableLocation(QStandardPaths::ConfigLocation);
    qDebug() << QStandardPaths::writableLocation(QStandardPaths::MoviesLocation);
    qDebug() << QStandardPaths::writableLocation(QStandardPaths::AppDataLocation);
    qDebug() << QStandardPaths::writableLocation(QStandardPaths::RuntimeLocation);
    qDebug() << QStandardPaths::writableLocation(QStandardPaths::DownloadLocation);
    qDebug() << QStandardPaths::writableLocation(QStandardPaths::PicturesLocation);
    qDebug() << QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation);
    qDebug() << QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation);
    qDebug() << QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation);
    qDebug() << QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation);
    qDebug() << QStandardPaths::writableLocation(QStandardPaths::GenericCacheLocation);
    qDebug() << QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation);

对应的输出路径
1、主路径
2、数据路径
3、临时路径
4、储藏路径
5、音乐路径
6、字体路径
7、桌面路径
8、配置路径
9、影片路径
10、应用路径
11、运行期间路径
12、下载路径
13、照片路径
14、应用配置路径
15、文档路径
16、普通数据路径
17、本地应用数据路径
18、普通储藏路径
19、普通配置路径

输出

"/Users/yucheng"
"/Users/yucheng/Library/Application Support/leaner_path_test"
"/private/var/folders/sn/4s6c8fds6knc95wwt42nlqpw0000gp/T"
"/Users/yucheng/Library/Caches/leaner_path_test"
"/Users/yucheng/Music"
"/Users/yucheng/Library/Fonts"
"/Users/yucheng/Desktop"
"/Users/yucheng/Library/Preferences"
"/Users/yucheng/Movies"
"/Users/yucheng/Library/Application Support/leaner_path_test"
"/Users/yucheng/Library/Application Support"
"/Users/yucheng/Downloads"
"/Users/yucheng/Pictures"
"/Users/yucheng/Library/Preferences/leaner_path_test"
"/Users/yucheng/Documents"
"/Users/yucheng/Library/Application Support"
"/Users/yucheng/Library/Application Support/leaner_path_test"
"/Users/yucheng/Library/Caches"
"/Users/yucheng/Library/Preferences"

2、.standardLocations()函数使用

用法和.writableLocation()一样。具体不阐述。
其生成QStringList路径

输出:

("/Users/yucheng")
("/Users/yucheng/Library/Application Support/leaner_path_test", "/Library/ApplicationSupport/leaner_path_test", "/Users/yucheng/Applications/Learn_Qt/build-leaner_path_test-Desktop_Qt_5_14_2_clang_64bit-Debug/leaner_path_test.app/Contents/Resources")
("/private/var/folders/sn/4s6c8fds6knc95wwt42nlqpw0000gp/T")
("/Users/yucheng/Library/Caches/leaner_path_test", "/Library/Caches/leaner_path_test")
("/Users/yucheng/Music")
("/Users/yucheng/Library/Fonts", "/Library/Fonts", "/System/Library/Fonts")
("/Users/yucheng/Desktop")
("/Users/yucheng/Library/Preferences")
("/Users/yucheng/Movies")
("/Users/yucheng/Library/Application Support/leaner_path_test", "/Library/Application Support/leaner_path_test", "/Users/yucheng/Applications/Learn_Qt/build-leaner_path_test-Desktop_Qt_5_14_2_clang_64bit-Debug/leaner_path_test.app/Contents/Resources")
("/Users/yucheng/Library/Application Support")
("/Users/yucheng/Downloads")
("/Users/yucheng/Pictures")
("/Users/yucheng/Library/Preferences/leaner_path_test")
("/Users/yucheng/Documents")
("/Users/yucheng/Library/Application Support", "/Library/Application Support")
("/Users/yucheng/Library/Application Support/leaner_path_test", "/Library/Application Support/leaner_path_test", "/Users/yucheng/Applications/Learn_Qt/build-leaner_path_test-Desktop_Qt_5_14_2_clang_64bit-Debug/leaner_path_test.app/Contents/Resources")
("/Users/yucheng/Library/Caches", "/Library/Caches", "/System/Library/Caches")
("/Users/yucheng/Library/Preferences")

文章部分参考来源:https://blog.youkuaiyun.com/weber_chen/article/details/79804074

Qt基础篇:Qt读取路径下所有文件或指定类型文件(含递归、判断是否为空、创建路径) Qt读取路径下所有文件或指定类型文件(含递归、判断是否为空、创建路径) 阅读详情

相关推荐

Qt项目文件(.pro文件)配置详解与Matlab集成

通过修改.pro文件,我们可以告诉Qt编译器在构建项目时在指定路径中查找Matlab头文件和库文件。然后,我们可以在Qt应用程序中初始化Matlab引擎,并使用Matlab函数进行数值计算和科学编程。在许多情况下,我们可能需要将这两个工具结合起来,以便在Qt应用程序中使用Matlab功能。首先,我们需要修改Qt项目文件(.pro文件),以便能够正确地链接和使用Matlab库。一旦我们配置了Qt项目文件,就可以在Qt应用程序中调用Matlab函数了。在上述示例中,我们计算了25的平方根,并将结果打印出来。

DevScribe的博客 269

Qt中获取系统目录的方法 (***)

Qt中获取系统目录的方法: 程序所在路径、用户目录路径、临时文件夹等特殊路径的方法

ken2232的博客 1385

别再手动写JSON了!用Node-RED OPC UA节点5分钟搞定楼宇温湿度数据采集

本文介绍了如何利用Node-RED和OPC UA节点快速实现楼宇温湿度数据的自动化采集与JSON格式转换。通过可视化工具Node-RED,开发者无需编写复杂代码,5分钟内即可完成从传感器到数据输出的全流程配置,大幅提升智慧楼宇和工业物联网项目的实施效率。

weixin_30368405的博客 432

qt QStandardPaths 详解

QStandardPaths是Qt框架中的一个类,它提供了一种跨平台的方式来访问标准的位置,如应用程序的数据目录、配置目录、缓存目录、临时文件目录等。这些位置通常是用户特定的,并且遵循操作系统的标准和惯例。通过使用QStandardPaths,开发者可以确保他们的应用程序在不同的操作系统上都能以一致和期望的方式存储和访问数据。

ckg3824278的博客 1165

c#.net使用正则表达式验证文本中是否包含手机号码或电话号码?

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Text.RegularExpressions; using System.Collections; namespace RegularPhoneApp { class Program

码农 3584

什么是PCIe Relaxed Ordering

什么是PCIe上的Relaxed Ordering呢?直接翻译的话就是宽松排序。在理解这个东西之前,需要先了解下什么是PCIe的基本事务排序法则。

qq_42824983的博客 1510

Qt 获取各种目录用法

1、writeableLocation(StandardLocation type):返回给定类型的标准位置的可写路径。用于获取应用程序应该存储其数据、配置或缓存的目录。(6)获取本地应用数据路径。(10)获取普通配置路径。(11)获取普通数据路径。(2)获取运行期间路径。(5)获取应用配置路径。(9)获取普通储藏路径。(12)获取应用路径。(13)获取音乐路径。(14)获取字体路径。(15)获取桌面路径。(16)获取影片路径。(17)获取下载路径。(18)获取照片路径。(19)获取文档路径。

weixin_51795597的博客 543

开关变换器小信号建模实战:从理论到环路设计

本文深入探讨了开关变换器小信号建模的实战技巧,从理论基础到环路设计全面解析。通过Buck和Boost变换器的具体案例,详细介绍了状态空间平均法、扰动法等关键建模技术,并分享环路补偿设计和实际调试中的宝贵经验。文章特别强调了小信号建模在电源设计中的重要性,为工程师提供了从理论到实践的完整解决方案。

weixin_29290259的博客 376

QT路径获取

【代码】QT路径获取。

Rainbow 271

字符串替换—牛客网(C++实现)

一.题目描述 请你实现一个简单的字符串替换函数。原串中需要替换的占位符为"%s",请按照参数列表的顺序一一替换占位符。若参数列表的字符数大于占位符个数。则将剩下的参数字符添加到字符串的结尾。 给定一个字符串A,同时给定它的长度n及参数字符数组arg,请返回替换后的字符串。保证参数个数大于等于占位符个数。保证原串由大小写英文字母组成,同时长度小于等于500。 测试样例: “A%sC%sE”,7,[‘...

qq_38358582的博客 1522

EML 全面实践指南:把 SAP RAP 业务对象玩出工程化的稳定与优雅

本文面向掌握ABAP基础、正在实施RAP的开发者,深入讲解EML(Entity Manipulation Language)的核心用法。文章围绕READ ENTITIES、MODIFY ENTITIES、COMMIT ENTITIES三大语句,详细解析其语义、类型体系、事务机制及工程实践。重点内容包括:字段裁剪、派生类型、草稿控制、批量更新、事务缓冲与保存序列等关键技术点,并配合真实案例代码。旨在帮助开发者在SAP ABAP On-Premise和BTP环境中构建可维护、可演进的业务对象访问层,同时避免常见

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 329

Qt学习笔记,使用QDir获取当前目录下所有目录和文件信息

Qt学习笔记,使用QDir获取当前目录下所有目录和文件信息 #include <QDir> #include <QApplication> #include <QDebug> int main(int argc,char *argv[]){ QApplication app(argc,argv); QDir ...

weixin_34198583的博客 953

微博scheme

微博scheme

qq_42278595的博客 319

Qt文本读写之二:目录操作

一、简介 QDir类用来访问目录结构及其内容,可以操作路径名、访问路径和文件相关信息以及操作底层的文件系统,还可以访问Qt的资源系统。Qt使用“/”作为通用的目录分隔符和URLs的目录分隔符,如果使用“/”作为目录分隔符,Qt会自动转换路径来适应底层的操作系统。QDir可以使用相对路径或者绝对路径来指向一个文件,使用绝对路径的例子: QDir dir("/home/user/Docume...

weixin_30243533的博客 428

投稿前利用GPT-5.5给论文做一次深度校对,投稿命中率翻倍!

3)一致性:请对比摘要的结论与正文(如果我也提供了正文),确保完全一致。请严格检查结果部分,确保客观性:1)纯粹性检查:标出所有包含“为什么”(解释)或“这意味着什么”(暗示)的主观语句,这些应移至讨论部分。请你帮我评估讨论部分的深度:1)解释与对比:检查每一项主要结果是否都解释了原因,并引用了前人研究进行对比(一致或相悖)。我见过太多人把校对理解为检查错别字了,实际上,校对要看的远不止这个,像逻辑是否连贯、术语是否前后一致、图表有没有被正确引用等等的这些细节,往往决定了文章是秒被拒,还是能顺利进入外审。

智能AI让学术科研更容易 412

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

[Qt笔记]QDir的用法

类QDir提供了对目录结构和它们的内容的访问方式。QDir用来操作路径名,访问关于路径和文件的信息,操作基础的文件系统,还可以用来访问Qt的资源系统。        Qt使用"/"来作为通用的目录分隔符,这一点和在URLs中的路径分割符的用法一致。如果你使用"/"作为文件分隔符,Qt会自动地转换你的路径来匹配你的基础的操作系统。        绝对路径的用法: QDir("/

kjtt_kjtt的专栏 2867

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

118.Qt入门,实现一个图片查看软件

【代码】118.Qt入门,实现一个图片查看软件。

weixin_63779802的博客 313

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

QT操作文件

QDir QDir类提供了访问系统目录结构及其内容的方式。 QDir类使用相对或绝对文件路径来指向一个文件/目录。 初始化: QDir mdir(path) 目录和导航操作 QString path():获得QDir类对象所关联的目录路径; bool setPath():设置新的路径; QString absolutePath():获得目录的绝对路径; QString dirName():获得目录名; bool mkdir():创建一个目录; bool rename():重命名目录; rmdir():移除一

qq_20786911的博客 418

Qt文件操作类

Qt文件操作相关类说明

qianniulaoren的博客 288

Qt 读写文件操作

转载:http://www.cnblogs.com/lomper/p/4274720.html  QT文件读写类  作者:Lomper 1、QIODevice 直接继承自QObject QIODevice类是输入/输出设备的基类。 QIODevice为设备提供了公共实现和抽象接口用于读写块数据。 QIODevice是一个抽象类,不能被实例化。 2、QFile 继承自QIO

xingyuan1hao的专栏 834

Qt之文件操作

1、QIODevice 直接继承自QObject QIODevice类是输入/输出设备的基类。 QIODevice为设备提供了公共实现和抽象接口用于读写块数据。 QIODevice是一个抽象类,不能被实例化。 被Q3Socket,Q3SocketDevice,QAbstractSocket,QBuffer,QFile,QLocalSocket,QNetworkReply,QP

dwhghw的博客 551

Qt浅谈之十四:文件操作

一、简介        通过QFile、QDir、QFileInfo和QFileSystemWatcher类简单介绍对文件和目录的一些操作。对文本流和数据流没有太多的介绍,还有一些Qt资源、统一资源定位符、缓冲区可以在以后应用中加上。 二、详解 1、QFile 可以读写文本文件、二进制文件和Qt资源文件,也可以和QTextStream和QDataStream一起使用

snowfoxmonitor的专栏 5069

QT文件处理总结

Qt里提供了QFile类来进行文件操作,为了更方便地处理文本文件和二进制文件。Qt还提供了QTestStream和QDataStream类,处理临时文件可以使用QTemporaryFile。获取文件信息可以使用QFileInfo,处理目录使用QDir,监视文件和目录变化则可以使用QFileSystemWatcher。 QFile类可以读写文本文件、二进制文件和Qt的资源...

aidianzui5381的博客 180

Qt的QDir类

Qt的QDir类是在QtCore模块中, python获取当前路径的语句为: QtCore.QDir.currentPath() C++类似。

我的小天地 ^_^ 529
上一篇: Qt QAction动作——菜单栏、工具栏、状态栏
下一篇: Qt Ui界面风格的蜕变——样式表qss使用
巨蟹贼香
博客等级 码龄9年 76粉丝 43原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值