Глава 4. Генерация кода с помощью шаблонов

В KDevelop для генерации файлов исходного файла используются шаблоны. Кроме того, с их помощью можно избежать повторного написания часто используемых частей кода.

Создание нового класса

Создавать код по шаблону чаще всего требуется, вероятно, при написании нового класса. Чтобы создать новый класс в уже созданном проекте, щёлкните правой кнопкой мыши по папке проекта и выберите в контекстном меню пункт Создать из шаблона…. То же диалоговое окно можно открыть с помощью пункта меню ФайлСоздать из шаблона…, но у использования папки проекта есть преимущество — будет установлен базовый URL-адрес для выходных файлов. В представлении выбора категории выберите Класс, а в двух других представлениях — нужные язык программирования и шаблон. После выбора шаблона класса следует указать другие характеристики нового класса.

Сначала необходимо указать идентификатор нового класса. Это может быть как просто имя (например, Bus), так и полный идентификатор с пространствами имён (например, Transportation::Bus). В последнем случае KDevelop выполнит синтаксический анализ идентификатора и корректно отделит пространства имён от самого имени. На той же самой странице можно добавить базовые классы для нового класса. Как можно было заметить, в некоторых шаблонах уже сделан выбор базового класса; этот класс можно удалить и/или добавить другие. Здесь необходимо указать полную инструкцию наследования. Она зависит от языка: public QObject для C++, extends SomeClass для PHP или просто имя класса для Python.

На следующей странице будет можно выбрать виртуальные методы из всех унаследованных классов, а также стандартные конструкторы, деструкторы и операторы. Установка флажка рядом с подписью метода позволяет реализовать этот метод в новом классе.

При нажатии кнопки Далее появляется страница, на которой можно добавить в класс методы. В зависимости от того, какой шаблон выбран, методы могут быть реализованы в новом классе как переменные-члены или быть созданы свойствами с функциями установки и получения значений. В языках программирования, где необходимо объявлять типы переменных (например, в C++), потребуется указать как тип, так и имя члена, например: int number или QString name. В других языках можно не указывать тип, но рекомендуется всё равно сделать это (возможно, такое указание будет полезно для дальнейшей работы с шаблоном).

На следующих страницах можно выбрать условия лицензирования для нового класса, задать нестандартные параметры, необходимые для работы выбранного шаблона, и настроить расположения выходных данных для всех создаваемых файлов. Нажатие кнопки Готово приводит к завершению работы вспомогательной программы и созданию нового класса. Созданные файлы будут открыты в редакторе, что позволит сразу же приступить к добавлению кода.

После создания нового класса C++ появится возможность добавить его к цели проекта. Выберите цель на странице диалога или закройте её и добавьте файлы к цели вручную.

Если выбрать шаблон Qt Object, отметить некоторые из стандартных методов и добавить две переменные-члена, вывод будет выглядеть так, как показано на следующем изображении.

Как можно видеть, данные-элементы преобразованы в свойства Qt с функциями доступа и макросами Q_PROPERTY. Аргументы для функций присваивания даже передаются константными ссылками (когда это возможно). Кроме того, объявлен закрытый класс и создан закрытый указатель с Q_DECLARE_PRIVATE. Всё это выполнено шаблоном; если выбрать на первом этапе другой шаблон, результат может быть совсем другим.