Для создания и импорта некоторых типов проектов и файлов, таких как GUI или консольное приложение Qt, вы используете мастеров. Вы также можете использовать мастеров для добавления отдельных файлов в ваши проекты. Например, вы можете создать следующие типы файлов:
- Файл ресурсов Qt, который позволит вам хранить бинарные файлы в исполняемом файле приложения
- Формы Qt Designer и файлы Qt QML, которые описывают части интерфейса пользователя приложения
- Класс C++, файл исходных текстов или заголовочный файл
Мастера запросят у вас необходимые для конкретного проекта настройки и создадут для вас необходимые файлы. Для отображения других типов файлов в панели Проекты, укажите их в файле проекта.

Использование мастера проектов
Для создания нового проекта:
- Выберите Файл > Новый файл или проект... и выберите тип вашего проекта.
Содержимое диалогов будет зависеть от типа проекта. Следуйте инструкциям мастера. Этот пример использует GUI приложение Qt
.
- Назовите проект и выберите его путь. Чтобы выбрать путь из дерева каталогов, нажмите Обзор...
Избегайте использование пробелов и специальных символов в имени проекта и пути.

- Укажите имя класса, который вы хотите создать, и, используя раскрывающееся меню, выберите тип базового класса.
Заметьте, что поля Заголовочный файл, Исходный файл и Файл формы будут обновлены автоматически в соответствии с выбранным вами именем класса.

- Проверьте настройки проекта.
Чтобы создать проект, нажмите Завершить.

Отображение дополнительных типов файлов в панели проектов
Qt Creator определяет необходимость отображения файлов из каталога проекта в панели Проекты в зависимости от типа файла (.pro, .pri, .cpp, .h, .ui, .qrc и так далее). Для отображения других типов файлов, измените файл проекта. Добавьте имена файлов в качестве значения переменной OTHER_FILES. Вы так же можете использовать подстановочные символы.
Например, следующий код указывает, что текстовые файлы должны отображаться в панели Проекты:
OTHER_FILES += *.txt
Это также обеспечивает доступность этих файлов в Поисковике.
Добавление новых мастеров проектов
Если у вас командная работа над большим приложением или несколькими приложениями, вы возможно захотите стандартизировать способ создания проектов и классов членами команды.
Вы можете использовать шаблон мастера из каталога share/qtcreator/templates/wizards для создания ваших собственных мастеров проекта и класса. Qt Creator просматривает этот каталог и добавляет все мастера, определённые в файле wizard.xml, в диалог Новый, который открывается когда вы выбираете Файл > Новый файл или проект.
В мастере проекта вы можете указать необходимые проекту файлы. Вы можете добавить страницы мастера чтобы позволить разработчикам указать настройки проекта.
В мастере класса вы можете позволить разработчикам указывать имя класса, базовый класс и заголовочные файлы и файлы исходных текстов для класса.
Чтобы увидеть как это работает, переименуйте wizard_example.xml в wizard.xml в каталогах helloworld и listmodels. После того как вы перезапустите Qt Creator, в диалоге Новый появятся категории Собственные классы и Собственные проекты.

Создание мастеров проектов
Для создания мастера проекта:
- Сделайте копию каталога share/qtcreator/templates/wizards/helloworld или share/qtcreator/templates/wizards/listmodel.
- Измените файл wizard_example.xml.
- Следующий код определяет тип мастера и размещает его в диалоге Новый:
<wizard version="1" kind="project"
class="qt4project" firstpage="10"
id="A.HelloWorld" category="B.CustomProjects">
- version это версия содержимого файла. Не изменяйте это значение.
- kind указывает тип проекта: project или class.
- class указывает тип проекта. В настоящее время доступен только тип qt4project, который описывает консольное приложение Qt.
- firstpage указывает место новой страницы в стандартном мастере проекта. Значение 10 обеспечивает что созданная страница появится после стандартных страниц в качестве последней страницы мастера.
- id это уникальный идентификатор вашего мастера. Буква указывает положение мастера в категории. Мастер HelloWorld появится как первый мастер во второй категории диалога Новый.
- category это категория в списке которой будет размещен мастер. Буква указывает положение в списке категории в диалоге Новый.
- Следующий код определяет иконку и текст, которые появятся в диалоге Новый:
<icon>console.png</icon>
<description>Creates a hello-world-project with custom message.</description>
<description xml:lang="de">Erzeugt ein Hello-Welt-Projekt mit einer Nachricht.</description>
<displayname>Hello World</displayname>;
<displayname xml:lang="de">Hallo Welt</displayname>;
<displaycategory>Custom Projects</displaycategory>
<displaycategory xml:lang="de">Benutzerdefinierte Projekte</displaycategory>
- Следующий код описывает добавляемые в проект файлы:
<files>
<file source="main.cpp" openeditor="true" />
<file source="project.pro" target="%ProjectName%.pro" openproject="true" />
- source указывает файл для копирования в проект. Файлы должны быть расположены в каталоге мастера.
- target описывает новое имя файла. Переменная %ProjectName% заменятся строкой, которую вводит пользователь в поле Имя на первой странице мастера.
- openproject указывает что файл является файлом проекта и должен быть открыт после завершения работы мастера.
- openeditor указывает что файл должен быть открыт в редакторе после завершения работы мастера.
- Следующий код создает страницу которая уточняет настройки проекта:
<!-- Create a 2nd wizard page with parameters -->
<fieldpagetitle>Hello World Parameters</fieldpagetitle>
<fieldpagetitle xml:lang="de">Hallo Welt Parameter</fieldpagetitle>
<fields>
<field mandatory="true" name="MESSAGE">
<fieldcontrol class="QLineEdit" validator='^[^"]+$' defaulttext="Hello world!" />
<fielddescription>Hello world message:</fielddescription>
<fielddescription xml:lang="de">Hallo-Welt-Nachricht:</fielddescription>
</field>
</fields>
- fieldpagetitle указывает заголовок страницы.
- field указывает является ли поле обязательным (true или false). Вы можете использовать значение поля name в качестве переменной в других файлах (например, %MESSAGE%).
- fieldcontrol указывает поле. class указывает тип поля. Для создания полей вы можете использовать наследников класса QWidget. Этот пример использует QLineEdit для создания поля ввода.
- validator указывает регулярное выражение для проверки допустимых символов в поле.
- defaulttext указывает текст который появится в поле по умолчанию.
- fielddescription указывает имя поля которое появится на странице мастера.
Создание мастеров классов
Файл widget.xml для мастера класса очень похож на файл для мастера проекта. Отличия описаны ниже.
Для создания мастера класса:
- Следующий фрагмент кода описывает настройки мастера:
<wizard version="1" kind="class" id="A.ListModel" category="B.CustomClasses">
<description>Creates a QAbstractListModel implementation.</description>
<description xml:lang="de">Erzeugt eine Implementierung von QAbstractListModel.</description>
<displayname>QAbstractListModel implementation</displayname>
<displayname xml:lang="de">Implementierung von QAbstractListModel</displayname>
<displaycategory>Custom Classes</displaycategory>
<displaycategory xml:lang="de">Benutzerdefinierte Klassen</displaycategory>
Для получения дополнительной информации о элементах и их значения смотрите Создание мастеров проектов.
- Следующий код описывает добавляемые в проект файлы:
<files>
<file source="listmodel.cpp" target="%ClassName:l%.%CppSourceSuffix%" openeditor="true" />
<file source="listmodel.h" target="%ClassName:l%.%CppHeaderSuffix%" openeditor="true" />
</files>
Здесь target содержит следующие переменные, которые используются для генерации имени файла:
- %ClassName:l% заменяется значением поля ClassName. Модификатор l переводит строку в нижний регистр для соблюдения соглашений Qt.
- %CppSourceSuffix% заменяется суффиксом файлов исходных кодов по умолчанию, который определяется в Qt Creator в Инструменты > Параметры... > C++ > Именование файлов. Например, если пользователь вводи MyClass, при создании проекта имя файла станет myclass.cpp.
- %CppHeaderSuffix% заменяется суффиксом заголовочных файлов по умолчанию, который также определяется в в Именование файлов. В данном случае имя файла будет myclass.h.
- Следующий код создаёт страницу, которая позволит пользователям выбирать имя класса, базового класса и заголовочного файла и файла исходных кодов для класса:
<!-- Create parameter wizard page -->
<fieldpagetitle>ListModel parameters</fieldpagetitle>
<fieldpagetitle xml:lang="de">Parameter des ListModel</fieldpagetitle>
<fields>
<field name="ClassName">
<fieldcontrol class="QLineEdit" validator="^[a-zA-Z0-9_]+$" defaulttext="MyListModel" />
<fielddescription>Class name:</fielddescription>
<fielddescription xml:lang="de">Klassenname:</fielddescription>
</field>
<field name="Datatype">
<fieldcontrol class="QComboBox" combochoices="QString,int" defaultindex="0" />
<fielddescription>Data type:</fielddescription>
<fielddescription xml:lang="de">Datentyp:</fielddescription>
</field>
</fields>
В дополнение к QLineEdit, в мастере класса для создания поля был использован QComboBox. combochoices определяет опции в выпадающем списке, а defaultindex указывает какой элемент QString является значением по умолчанию.