1.资源文件路径
"qrc:///filepath"。这用来索引资源文件。
所有资源文件,打包到可执行文件中,建议不要放太大的文件,如字体文件
2.绝对路径
"file:///绝对路径"。这用来索引本地文件系统中的文件,使用绝对路径
3.相对路径
"file:相对路径"。这用来索引本地文件系统中的文件,使用相对路径
注:相对路径是相对于启动目录的,不建议直接使用
如,使用快捷方式,相对路径应该是快捷方式的路径,而不是应该程序的目录
Qml获取应用程序可执行文件的目录
1.在C++中,使用QApplication::applicationDirPath()获取,并注册到qml中
建议使用这种方法
C++部分代码示例
#include <QApplication>
#include <QQmlApplicationEngine>
#include <QQmlContext>
int main(int argc, char *argv[])
{
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QApplication app(argc, argv);
QQmlApplicationEngine engine;
//该句要加在engine.load(QUrl(QStringLiteral("qrc:/main.qml")))之前,
//设置engine's root context属性,以便在qml里通过appDir获取文件目录
engine.rootContext()->setContextProperty("appdir", qApp->applicationDirPath());
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
if (engine.rootObjects().isEmpty())
return -1;
return app.exec();
}
qml部分代码中,直接使用appdir即可
2.在qml里调用Qt.application.arguments[0]获取全路径,然后再按照路径分隔符取出
缺点:不同操作系统下,路径分隔符可能不一样