
qrc文件的一个例子是:
<!DOCTYPE RCC><RCC version="1.0"> <qresource prefix=""> <file>images/1.jpg</file> <file>images/2.jpg</file> <file>images/3.jpg</file> <file>images/4.jpg</file> </qresource> </RCC>
我想以下列方式使用它:
for(int i=0;i<4;i++) { path=image_path[i]; } 其中path是一个qList,可以在以后用于访问相应的图像.
解决方法 使用 QDirIterator似乎有一种简单的方法.如果在当前工作目录中有一个名为“:”的目录,它可能会中断,并且您希望将来可以对其进行解析.无论如何,这不应该是现在关注的问题.
QStringList imagefileList;QDirIterator dirIterator(":",QDirIterator::SubdirectorIEs);while (dirIterator.hasNext()) { QfileInfo fileInfo = it.fileInfo(); if (fileInfo.isfile()) // Do not add directorIEs to the List imagefileList.append(it.next());} 或者,这需要相当多的参与,但我认为它有效.我担心写这个没有更方便的方法.
main.qrc
<!DOCTYPE RCC><RCC version="1.0"> <qresource prefix=""> <file>images/1.jpg</file> <file>images/2.jpg</file> <file>images/3.jpg</file> <file>images/4.jpg</file> </qresource></RCC>
main.cpp中
#include <QXmlStreamReader>#include <QString>#include <Qfile>#include <QTextStream>int main(){ QTextStream standardOutput(stdout); Qfile file("main.qrc"); if (!file.open(qiodevice::Readonly | qiodevice::Text)) { standardOutput << "file open error:" << file.errorString() << "\n"; return 1; } QXmlStreamReader inputStream(&file); while (!inputStream.atEnd() && !inputStream.hasError()) { inputStream.readNext(); if (inputStream.isstartElement()) { QString name = inputStream.name().toString(); if (name == "file") standardOutput << "file: :/" << inputStream.readElementText() << "\n"; } } return 0;} main.pro
TEMPLATE = appTARGET = mainQT = coreSOURCES += main.cpp
构建并运行
qmake && make && ./main
产量
file: :/images/1.jpgfile: :/images/2.jpgfile: :/images/3.jpgfile: :/images/4.jpg总结
以上是内存溢出为你收集整理的c – 在Qt中获取qrc文件的路径全部内容,希望文章能够帮你解决c – 在Qt中获取qrc文件的路径所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)