gpt4 book ai didi

qt - 如何从共享库初始化 Qt 资源?

转载 作者:行者123 更新时间:2023-12-02 04:56:58 24 4
gpt4 key购买 nike

我不知道如何初始化 Red Hat Enterprise Linux 5.2 下共享库中声明和使用的 Qt 资源。

我向共享库中添加了一个 Qt 资源文件,添加了名为“resource”的前缀,并添加了一个文件“files/styleSheet.xsl”。资源文件名为“resources.qrc”。 QFile::exists 返回 false?

MySharedLib::MySharedLib()
{

// I think Q_INIT_RESOURCE basically expands to this:
// The resource file is named "resources.qrc"
extern int qInitResources_resources();
qInitResources_resources();

QString resourcePath = ":/resource/files/styleSheet.xsl";
if( false == QFile::exists(resourcePath))
{
printf("*** Error - Resource path not found : \"%s\"\n", resourcePath.toLatin1().data());
}

}

预先感谢您提供任何提示或建议,

最佳答案

问题在于,在 Linux 下,您的共享库和应用程序中不能有相同名称的 Qt 资源文件 (*.qrc)。这在 Windows 下不是问题,但在 Linux 下它只会加载同名资源文件之一。我在应用程序和共享库文件中都将资源文件命名为“resources.qrc”。我重命名为“resourcesmylib.qrc”和“resourcesmyapp.qrc”,一切都很好。我不需要向我的库添加调用 Q_INIT_RESOURCES 或调用 qInitResources_resources*。

解决方案

  • 使用唯一的 Qt 资源文件名Linux 下的库和应用程序。

感谢 Qt-Interest 邮件列表中的 Jaco N.。谢谢你,雅科!

关于qt - 如何从共享库初始化 Qt 资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4319792/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com