我有一个小应用程序,用户可以在其中创建自己的插件作为QML文件。 这些插件在某些事件时会收到通知,并且它们的用户界面会在TabView中逐个显示。
然而,某些插件需要能够通过QML提供的功能,例如写入文件。 如何让我的用户随意扩展功能?答案 0 :(得分:1)
您的用户必须:
QQmlExtensionPlugin
将QObject注册为QML类型。qmldir
文件告诉QML引擎如何加载DLL。编辑: Qt Creator为您自动完成此过程。转到"文件" - > "新文件或项目......" - > "项目" - > "库" - > " Qt Quick 2 Extension Plugin"
您可以在文档中找到有关此过程的更多详细信息:
注1:您的用户不会写一个* .qml文件。
注意2:每个插件必须位于自己的子文件夹中。这是因为每个C ++插件都需要一个qmldir
文件,但您不能在同一个文件夹中拥有多个qmldir
文件。
您可以在Qt安装中找到一些真实示例。转到,比方说,C:\ Qt \ 5.3 \ mingw482_32 \ qml - 这里的所有子文件夹都包含QML插件,大多数是用C ++编写的。以下是一些示例源代码: