总结(Summary)

插件的创建非常简单,但是它可以复用,并且为不同的应用程序扩展类型。使用创建的插件是非常灵活的解决方案。例如你可以只使用qmlscene开始创建UI。打开CityUI项目文件夹,从qmlscenemain.qml开始。我真的鼓励大家使用与qmlscene一起工作的方式写应用程序。对于UI开发者,这将是一个巨大的改变,也是一个好的习惯来保证清晰的分离。

使用插件有一个缺点,对于简单的应用程序开发增加了难度。你需要为你的应用程序开发插件。如果这是一个问题,你也可以使用与FileIO对象相同的机制使用qmlRegisterType直接注册到你的main.cpp中。QML代码保持一样就可以了。

通常在大型项目中,你不会像这样使用应用程序。你有一个与qmlscene类似的简单的qml运行环境,并且需要所有本地的功能插件。你的项目使用这些qml扩展插件,也是简单纯粹的qml项目。这为UI的变换提供了最大的灵活性并移除了编译步骤。在编辑完成一个QML文件后,你只需要运行UI。这允许用户界面开发者保持灵活性并迅速的使所有的小修改立刻得到响应。

插件提供了健壮和清晰的C++后台开发与QML前端开发的分离。当开发QML插件时,通常在QML端有一个想法,并在使用C+=实现前,可以使用QML的样本模型进行API验证。如果API是C++人员写的,通常会犹豫去改变它或者重写它。复制一个QML提供的API通常更加灵活并且初始投资更少。当使用插件切换一个样本模型API和一个真是API时,仅仅只需要改变qml运行环境的导入路径。