QT;如何在运行时存储变量的资源路径?

时间:2019-05-08 04:15:57

标签: c++ qt

我的qt项目具有.qrc文件,因此我的资源文件存储为“:/ audio / melody /...”。

我需要选择在运行时使用还是不使用哪些文件,因此我的程序将资源路径存储在.txt文件中。

在运行时,我的程序将这些路径作为变量获取到字符串。

所以现在我需要使用这些变量来放置任何其他Qt对象的[setSource(variables)]方法。但这不能。

我试图将std :: string(具有文件路径)转换为QString,并将其作为QUrl(QString)放在QtObj.setSource()中。

但是我发现QUrl(QString)没有数据(我希望QUrl(QString)中有类似“:/ audio / melody / .. blahblah”的资源路径。)

如何将std :: string(具有资源路径)转换为QUrl,以便将其用作资源路径?

实际上,我想知道是否有可能将资源路径用作变量。

1 个答案:

答案 0 :(得分:0)

要获取所有资源的列表,文件本身以及运行时文件的URL,可以执行以下操作:

QHash<QUrl, QFile> list;
QDirIterator it(":", QDirIterator::Subdirectories);
while (it.hasNext()) {
    QFile file(it.next());
    QUrl url = QUrl::fromLocalFile(file.fileName())

    list.insert(url, file);
}