一、获取应用程序运行路径
假设当前运行的应用程序在
...\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();
}