Резюме к главе «Расширение QML»
Плагин, созданный в этой главе, очень простой, но его можно повторно использовать и расширять другими типами для разных приложений. Использование плагинов создает очень гибкое решение. Например, теперь вы можете запустить пользовательский интерфейс, просто используя файл qml
. Откройте папку, в которой находится ваш проект CityUI
, и запустите пользовательский интерфейс с помощью qml main.qml
. Расширение доступно для движка QML из любого проекта и может быть импортировано куда угодно.
Вам рекомендуется писать свои приложения таким образом, чтобы они работали с qml
. Это значительно увеличивает время, когда разработчику пользовательского интерфейса можно вносить изменения, а также является хорошей привычкой четкого разделения логики и представления приложения.
Единственным недостатком использования плагинов является сложность развертывания. Это становится более очевидным, чем проще приложение (поскольку накладные расходы на создание и развертывание плагина остаются прежними). Теперь вам нужно развернуть ваш плагин с вашим приложением. Если это для вас проблема, вы всё равно можете использовать тот же класс FileIO
и зарегистрировать его непосредственно в вашем main.cpp, используя qmlRegisterType
. Код QML останется прежним.
В больших проектах вы не используете приложение как таковое. У вас есть простая среда выполнения qml
, похожая на команду qml
, поставляемую с Qt, и вам требуется, чтобы все встроенные функции поставлялись в виде плагинов. И ваши проекты – это простые чистые проекты QML, использующие эти плагины расширения QML. Это обеспечивает большую гибкость и устраняет этап компиляции для изменений пользовательского интерфейса. После редактирования файла QML вам просто нужно запустить пользовательский интерфейс. Это позволяет разработчикам пользовательского интерфейса оставаться гибкими, чтобы вносить все эти небольшие изменения.
Плагины обеспечивают хорошее и четкое разделение между бэкэнд-разработкой на C++ и фронтенд-разработкой на QML. При разработке плагинов QML всегда помните о стороне QML и не стесняйтесь начинать с макета только QML, чтобы сначала проверить свой API, прежде чем реализовывать его на C++. Если API написан на C++, люди часто не решаются изменить его или даже говорить о том, чтобы переписать его. Создание фиктивного API в QML обеспечивает гораздо большую гибкость и меньшие первоначальные инвестиции. При использовании плагинов переключение между фиктивным API и реальным API просто меняет путь импорта для среды выполнения QML.