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 前缀的主要内容,如果未能解决你的问题,请参考以下文章
为 iOS 编译 Qt 应用程序时使用 qml.qrc 发出警告