Qt 应用程序不使用 qrc 前缀

Posted

技术标签:

【中文标题】Qt 应用程序不使用 qrc 前缀【英文标题】:Qt application not working with qrc prefixes 【发布时间】:2018-12-24 16:23:03 【问题描述】:

我认为我缺少在 Qt Creator qrc 环境中使用各种前缀的一些基本方法。

如果我在默认前缀中放置一个 qml 组件,则应用程序构建并运行良好。但是,如果我添加一个新前缀,然后添加一个带有这个新前缀的新组件,应用程序输出会告诉我在我运行应用程序时它不是一种类型(它构建时没有错误)。

Qt Creator 在分配不同的前缀时会识别它,我可以在 IDE 中使用它。它显示在 qrc 编辑器中,它成为我可以在“设计器”中选择的组件。它也可以毫无问题地构建......但是当我运行我的应用程序时,应用程序输出告诉我它不是一种类型。

如果我随后打开 qrc 编辑器并将该组件移动到默认前缀,则应用程序将运行良好。

当它被分配给一个替代前缀时,我似乎没有给它在运行时找到该组件的方向。

我不知道将应用程序指向其他前缀的位置。

我尝试在我希望在其中使用它的组件中使用“导入”但没有成功。 我试过给它一个别名但没有成功。

这个组件需要做什么才能在我的应用程序中被识别为一种类型......即使它已经在 Qt-Creator 中被识别?

如果是前缀,看来我应该将它作为前缀添加到我可以输入的内容中;那会是哪里?

【问题讨论】:

提供minimal reproducible example 【参考方案1】:

我能够通过语法调整解决我的问题。

如果一个 qml 文件想要使用来自不同 qml 文件的 qml 组件,该文件在 qrc 中以不同的前缀列出,它必须导入前缀。

我尝试了这个但没有成功:import "/myOtherPrefix"

但是,它需要是这样的:import "qrc:/myOtherPrefix"

我无法在 Qt 文档中找到这方面的参考资料(它可能在某处)

【讨论】:

以上是关于Qt 应用程序不使用 qrc 前缀的主要内容,如果未能解决你的问题,请参考以下文章

Qt5 将 qrc 移至 DLL

为 iOS 编译 Qt 应用程序时使用 qml.qrc 发出警告

QT软件开发之基础控件--2.3 QT资源文件

无法在 Qt C++ 程序中加载 qrc 文件

Qt on Android 资源文件系统qrc与assets

qrc资源文件加载后,裸机环境下图片不显示