QT获取当前路径方法

一、获取应用程序运行路径

假设当前运行的应用程序在

...\build-qt_python-Desktop_Qt_5_12_10_MinGW_64_bit-Debug\debug下,我们需要获取...\build-qt_python-Desktop_Qt_5_12_10_MinGW_64_bit-Debug\debug这个路径,

可以使用QCoreApplication提供的applicationDirPath()函数:

QString path = QCoreApplication::applicationDirPath();

这个函数会返回应用程序的文件路径,不包括可执行文件名。

二、获取当前工作路径

假设当前运行的应用程序在

...\build-qt_python-Desktop_Qt_5_12_10_MinGW_64_bit-Debug\debug下,我们需要获取...\build-qt_python-Desktop_Qt_5_12_10_MinGW_64_bit-Debug这个路径,可以使用QDir提供的currentPath()函数:

QString path = QDir::currentPath();

这个函数会返回当前工作路径,即应用程序当前所在的路径。

三、获取用户特定路径

1.如果需要在Qt应用程序中创建或读取用户文档,可以使用QStandardPaths提供的方法获取用户文档路径:

QString docPath = QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation);

这个函数会返回一个可用于写入用户文档的文件夹路径。需要注意的是,这个路径可能会随着不同操作系统或用户配置而有所不同。

如本人电脑返回:"C:/Users/OSP/Documents"

2.获取桌面路径

QString DesktopLocation

=QStandardPaths::writableLocation(QStandardPaths::DesktopLocation);

  qDebug() << "DesktopLocation=" << DesktopLocation;

四、自定义路径

除了以上几个函数提供的路径外,我们还可以自定义路径。例如,如果需要在应用程序所在文件加同级路径下创建一个data文件夹,并且将数据文件存储在里面,可以使用以下代码:

QString path = QDir::currentPath() + "/data";

QDir().mkpath(path);

首先通过currentPath()获取应用程序当前所在路径,然后通过字符串拼接的方式获得data文件夹的完整路径。最后使用QDir的mkpath()函数创建该文件夹。

五、总结

在Qt中获取当前路径主要有四种方法:

使用QCoreApplication提供的applicationDirPath()函数获取应用程序运行路径。

使用QDir提供的currentPath()函数获取当前工作路径。

使用QStandardPaths提供的方法获取用户文档路径及桌面路径。

自定义路径,例如在应用程序所在路径下创建指定的文件夹。

根据具体的需求选择合适的方法即可。

六.完整代码

#include <QCoreApplication>

#include <QDebug>

#include <QStandardPaths>

#include <QDir>

int main(int argc, char *argv[])

{

    QCoreApplication a(argc, argv);

         QString path = QCoreApplication::applicationDirPath();  

         qDebug()<<path;

         QString path1 = QDir::currentPath();  

         qDebug()<<path1;

      QString docPath = QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation);

         qDebug()<<docPath;

         QString path2 = QDir::currentPath() + "/data";

         QDir().mkpath(path2);

         qDebug()<<path2;

QString DesktopLocation =

QStandardPaths::writableLocation(QStandardPaths::DesktopLocation);

         qDebug() << "DesktopLocation=" << DesktopLocation;

    return a.exec();

}

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

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

相关文章

Spring: Springboot 框架集成不同版本的spring redis

文章目录 一、集成不同版本的spring redis1、Spring Data Redis 1.x&#xff1a;2、Spring Data Redis 2.x&#xff1a;3、Spring Data Redis 3.x&#xff08;Spring Boot 2.x&#xff09;&#xff1a; 二、springboot集成Spring Data Redis 2.x1、首先&#xff0c;确保在 pom.…

Vue:vue的安装与环境的搭建

文章目录 环境搭建安装node.js&#xff08;比较简单&#xff09;安装Vue脚手架初始化启动 环境搭建 安装node.js&#xff08;比较简单&#xff09; 首先要安装node.js&#xff0c;进入官网下载即可。 更改安装路径&#xff0c;保持默认配置&#xff0c;一直点击下一步安装即可…

Linux系统运维命令:查看cache里的URL,即查看系统访问了哪些包含http的url(使用grep结合awk,组合命令实现功能)

目 录 一、需求 二、解决方法 1、解决思路 2、命令 三、实例演示和命令解释 1、实例演示 2、命令解释 四、扩展 一、需求 想知道某台linux机器最近访问了哪些http的web地址&#xff0c;如何处理&#xff1f; 二、解决方法 1、解决思路 Linux系统访问外…

(undone) 如何计算 Hessian Matrix 海森矩阵 海塞矩阵

参考视频1&#xff1a;https://www.bilibili.com/video/BV1H64y1T7zQ/?spm_id_from333.337.search-card.all.click 参考视频2&#xff08;正定矩阵&#xff09;&#xff1a;https://www.bilibili.com/video/BV1Ag411M76G/?spm_id_from333.337.search-card.all.click&vd_…

如何电脑录屏?教你3分钟快速掌握!

在当今数字化时代&#xff0c;电脑录屏已成为一项必不可少的技能。无论是录制游戏画面、线上课程还是软件演示&#xff0c;录屏都可以帮助用户更好地保存和分享信息。可是如何电脑录屏呢&#xff1f;在本文中&#xff0c;我们将介绍两种常用的电脑录屏方法&#xff0c;并分步骤…

【nvm切换node版本,发现npm无法使用,简单粗暴的解决方案】

nvm切换node版本&#xff0c;发现npm无法使用&#xff0c;简单粗暴的解决方案 使用了nvm切换指定node版本后&#xff0c;发现npm命令无法使用。 在nodejs官网找到这部分内容 找到需要安装的压缩包 把解压的文件放入到自己的nvm文件夹内 这部分是解压的nodejs 示例

HarmonyOS—低代码开发Demo示例

接下来为大家展示一个低代码开发的JS工程的Demo示例&#xff0c;使用低代码开发如下华为手机介绍列表的HarmonyOS应用/服务示例。 1.删除模板页面中的控件后&#xff0c;选中组件栏中的List组件&#xff0c;将其拖至中央画布区域&#xff0c;松开鼠标&#xff0c;实现一个List组…

从初步的需求收集到详细的规划和评估

综合需求分析建议 明确与细化用户故事 确保每个用户故事清晰、具体,包含角色、目标和成功标准。对用户故事进行优先级排序,以指导开发过程中的功能实现顺序。用户参与和原型制作 创建用户旅程图,以理解用户在使用产品或服务时的整体流程与体验。制作原型或草图,展示用户界面…

产品可靠性设计-浪涌防护设计中TVS选型与计算

产品可靠性设计-浪涌防护设计中TVS选型与计算 上一篇 有对产品浪涌和雷电脉冲的瞬态抑制方法和思路进行了分析&#xff0c;我们再对浪涌防护中TVS的能量计算方法举例给电子工程师们进行参考。 1&#xff09;浪涌与EFT及在产品抗扰度测试时的问题及差异 EFT测试是一种高频的现…

Golang 关于 interface 接口的理解

package mainimport "fmt"// 定义一个存储器接口&#xff1a;支持mysql存储、redis存储 type StorageManager interface {insert(data string) int // 增加update(id int, data string) int // 更新 }// 实现一个Mysql存储器 type Mysql struct{}func (mysql…

Langchain-Chatchat:离线运行的大模型知识库 | 开源日报 No.182

chatchat-space/Langchain-Chatchat Stars: 22k License: Apache-2.0 基于 ChatGLM 等大语言模型与 Langchain 等应用框架实现的开源、可离线部署的检索增强生成 (RAG) 大模型知识库项目。该项目是一个可以实现完全本地化推理的知识库增强方案&#xff0c;重点解决数据安全保护…

【JSON2WEB】05 前端开发三件套 HTML CSS JavaScript 速成

前端三件套是指在网页开发中常用的三种技术&#xff1a;HTML&#xff0c;CSS和JavaScript。它们分别负责网页的结构&#xff0c;样式和交互&#xff0c;是构建网页的基础。下面我们来简单介绍一下它们的作用和特点&#xff0c;并举一些例子。 1 HTML——描述页面结构 HTML&am…

投票项目_登录功能的版本迭代

V0版本: 实现最简单的登录,写个接口去数据库查有没有前端传来的账号和密码,查到且密码正确返回“登录成功”&#xff0c;其余情况统一返回“账号或密码错误”。 V1版本: 用session代替cookie 先导入依赖,将session加入到redis中 1.导入依赖 <dependency><groupId>…

智慧园区可视化的价值,不要再吐槽没啥用了。

2023-04-20 13:30贝格前端工场 提高园区运营效率&#xff1a;智慧园区可以通过物联网技术、大数据分析等手段&#xff0c;实现对园区内设施、设备、人员等的实时监控和管理&#xff0c;从而提高园区的运营效率&#xff0c;降低管理成本。 提升园区服务水平&#xff1a;智慧园区…

前端Vue项目无法启动服务,提示无 ‘dev‘ npm的脚本问题解决

目录 一、问题详情 二、问题解决 一、问题详情 上周还能运行的项目&#xff0c;今天突然无法执行了&#xff0c;连最基本的启动按钮也没有了&#xff0c;所有的项目本地都突然跑不起来了&#xff0c;附上截图。 二、问题解决 后来排查的根本原因有点奇葩&#xff0c;是因为…

C++面试 -操作系统-安全能力:死锁的危害、出现原因、解决方法

目录 死锁的危害 死锁出现的原因 死锁的解决方法 死锁是计算机科学中一个非常重要的概念&#xff0c;特别是在多线程、并发编程以及数据库管理系统等领域中。下面是关于死锁的危害、出现原因和解决方法的基础概述&#xff1a; 死锁的危害 资源浪费&#xff1a;死锁导致系统…

ABBYY FineReader16文档转换、PDF管理与文档比较功能介绍

ABBYY FineReader 16作为一款OCR和PDF一体化程序&#xff0c;其强大的功能使得文档处理变得简单高效。在众多功能中&#xff0c;文档转换、PDF管理和文档比较这三大功能尤为突出&#xff0c;成为了众多企业和个人用户的首选工具。 ABBYY Finereader 16-安装包下载如下&#xff…

【每日前端面经】2023-02-26

题目来源: 牛客 http和https http是一种用于分布式、协作式和超媒体信息系统的应用层协议。简单来说就是一种发布和接收HTML页面的方法&#xff0c;被用于在Web浏览器和网站服务器之间传递消息。该协议以明文方式发送内容&#xff0c;不提供任何方式的数据加密&#xff0c;如…

内存函数(C语言进阶)

目录 前言 1、memcpy 2、memmove 3、memcmp 4、memset 结语 前言 本篇介绍了C语言中的内存函数&#xff0c;内存函数&#xff0c;顾名思义就是处理内存的函数。 1、memcpy memcpy&#xff1a;内存拷贝函数。 相对于strcpy只能拷贝字符串来讲&#xff0c;memcpy能拷…

Qt介绍以及qt_creater的安装和C++项目工程创建

最近天气严寒&#xff0c;同学们要注意保暖哦&#xff01;学习的同时别忘了照顾好自己呀&#xff01;o(*&#xffe3;▽&#xffe3;*)ブ 目录 一、Qt 1、Qt概念 2、常见的GUI 二、安装qt_creater 方法一&#xff1a; 方法二&#xff1a; 三、Qt_creater 中C项目的创建 …