# 小结

本章创建的插件是一个非常简单的插件,但它可以被其他不同类型的应用程序重用和扩展。使用插件创造了一种非常灵活的解决方案。例如,现在只需使用qml即可启动UI。在CityUI项目所在的文件夹,使用qml main.qml启动UI。 QML引擎可以从任何项目中轻松使用该扩展,并且可以在任何地方导入该扩展。

这里鼓励以能够与qml一起使用的某种方式编写应用程序。这极大地增加了UI开发人员的周转时间,并且保持应用程序的逻辑和呈现清晰分离也是一个好习惯。

使用插件的唯一缺点是使部署变得更加困难。应用程序越简单,这一点就越明显(因为创建和部署插件的消耗保持不变)。现在,需要将插件与应用程序一起部署。如果这对用户来说是个问题,仍然可以使用相同的FileIO类并使用qmlRegisterType将其直接注册到main.cpp中,QML代码将保持不变。

在较大的项目中,不使用上面描述那样的应用程序。有一个简单的qml运行时,类似于Qt提供的qml命令,并且需要所有本地功能都作为插件提供。项目是使用这些qml扩展插件的简单纯qml项目。这提供了更大的灵活性,并移除因为UI更改的编译步骤。当编辑QML文件后,只需运行UI。这使得用户界面编写人员能够对小到像素那样更改也能保持灵活性和敏捷性。

插件在C++后端开发和QML前端开发之间提供了一个良好且清晰的分离。当开发QML插件时,始终要考虑的是QML方面的内容,在使用C++实现之前先开始毫不犹豫地从QML模型验证API。如果API是用C++编写的,人们往往会犹豫是否修改它或者说重写它。在QML中模拟API提供了更大的灵活性和更少的初始消耗。使用插件时,模拟API和真实API之间的切换只是更改qml运行时的导入路径就可以了。

最后更新: 2/10/2022, 8:12:32 PM