我的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,以便将其用作资源路径?
实际上,我想知道是否有可能将资源路径用作变量。
答案 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);
}