找不到QtResource文件中的文件

files in QtResource files not found

本文关键字:文件 找不到 QtResource      更新时间:2023-10-16

我在一个Qt资源文件中有几个XML文件。在Linux上一切都很好。但在Windows上,在运行时,资源文件中似乎根本没有任何内容。qrc-cpp文件已经构建完成,并且足够大,所以我猜我想要的所有文件都已经构建到其中

我最初在Linux上使用QtCreator创建了Resource文件。在Windows上使用Qt Creator,我可以从Resource文件打开XML文件。

我使用这条线路访问它们:

QDirIterator it( ":", QStringList() << "*.xml", QDir::Files );

出于测试目的,我尝试了这个:

QDir qDir( ":" );
QStringList listFiles = qDir.entryList();

并循环浏览listFiles,但它只是有一些文件,我在某个地方读到了这些文件,这些文件都是一直存在的。

无论如何,我肯定不是Qt专家,这是我第一次尝试使用Qt资源文件。为什么这在Linux上有效,而在Windows上无效?

这是QRC:

<RCC>
<qresource prefix="/">
<file>OMSClient____ActionDefinitions.xml</file>
<file>OMSClient____ADGroupDefinitions.xml</file>
<file>OMSClient____AdminConfiguration.xml</file>
<file>OMSClient____AlertSetup.xml</file>
<file>OMSClient____ClientConfigTooltips.xml</file>
<file>OMSClient____ClientConfiguration.xml</file>
<file>OMSClient____DALDBEditorConfiguration.xml</file>
<file>OMSClient____DALDBEditorStartup.xml</file>
<file>OMSClient____DBEditorConfiguration.xml</file>
<file>OMSClient____DefaultViewSetup.xml</file>
<file>OMSClient____GlobalSetup.xml</file>
<file>OMSClient____HtmlFiles.xml</file>
<file>OMSClient____Icons.xml</file>
<file>OMSClient____MaintenanceModule.xml</file>
<file>OMSClient____MenuTree.xml</file>
<file>OMSClient____Modules.xml</file>
<file>OMSClient____PermissionDefinitions.xml</file>
<file>OMSClient____Pixmaps.xml</file>
<file>OMSClient____ReportConfigurationSyntax.xml</file>
<file>OMSClient____SpareAircraftModule.xml</file>
<file>OMSClient____SSIDBEditorStartup.xml</file>
<file>OMSClient____SystemConfiguration.xml</file>
<file>OMSClient_Guest_Guest__MenuTree.xml</file>
</qresource>
</RCC>

我在一个Qt论坛上发布了同样的问题。那里有人让我创建一个测试程序来显示这个问题。因此,测试程序正常工作是很自然的。

问题是,在出现问题的应用程序中,正在链接到exe的lib中读取资源文件。因此,使其工作的方法是在main((中调用Q_INIT_RESOURCE(myResourceFile)