我对Qt QML中的模块感到困惑。我已阅读所有文档,但没有说明一些基本的想法。Qt5 QML模块未安装
据我所知,我可以把一堆QML文件放到一个目录中,并添加一个qmldir文件来描述一个已识别的模块。当我这样做并调整QML_IMPORT_PATH时,QtCreator很高兴,并停止强调导入ModuleName 1.0行。
所以创作者很高兴,但它不起作用。我没有安装模块。 我的问题是:
- “安装”是什么意思。我有文件目录,但我没有“安装”它们在任何地方。
- 我应该建立/编译模块,以使DLL/.so?
- 模块QML文件进入主应用程序的资源,否则它们在哪里被发现?
- 我的main.qml文件是应用程序资源的一部分,应用程序如何在运行时找到模块的资源。
对不起,对于所有这些问题,但这些模块的基础知识尚不清楚。我不明白,“模块”只是文件的共享还是编译单元。
感谢您的任何帮助。
感谢解释,但我仍然主要是在黑暗中。我发现如果将'addImportPath'设置为* absolute *路径,它就可以工作。但我希望引用的QML是本地项目。相对路径失败,因为它们不能从生成的构建目录中运行。 我也想出了如何将模块+其资源编译为DLL。但我不知道如何加载这个DLL。安排它在导入路径不起作用,因为我认为该DLL需要qmldir。该DLL将注册其中的类型,但这将涉及首先加载它。种鸡和鸡蛋? –
只需提供DLL插件的qmldir,它大约有3行,将qmldir放在插件旁边,将其全部放在具有正确名称的文件夹中,如我在答案中所述,并将该文件夹放在可执行文件的旁边。这应该工作。你尝试过吗? – rightaway717
谢谢。经过漫长的道路和大量搜索,这有助于很多! – Malachi