c – 在Qt中获取qrc文件的路径
发布时间:2020-12-16 07:08:51 所属栏目:百科 来源:网络整理
导读:我想知道如何访问qrc文件中的文件路径,以便将它们用作数组中的字符串. qrc文件的一个例子是: !DOCTYPE RCCRCC version="1.0" qresource prefix="" fileimages/1.jpg/file fileimages/2.jpg/file fileimages/3.jpg/file fileimages/4.jpg/file /qresource /R
我想知道如何访问qrc文件中的文件路径,以便将它们用作数组中的字符串.
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 = app TARGET = main QT = core SOURCES += main.cpp 构建并运行 qmake && make && ./main 产量 file: :/images/1.jpg file: :/images/2.jpg file: :/images/3.jpg file: :/images/4.jpg (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |