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();

}

  • 23
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI+程序员在路上

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值