(Случайно, вы можете открыть не только .ui.qml
, но и любой qml-файл в режиме design , если вы выполняете роли см. Этот пост ).
список мастеров, которые можно увидеть, когда добавляет новые в Creator. Это стандартные мастера, которые Qt, вероятно, считает достаточными и подходящими для общей перспективы.
Qt предлагает решение , хотя... вы можете добавить свой собственный пользовательский мастер в список стандартных мастеров в Qt Creator, следуя документации по Qt Добавление новых пользовательских мастеров процедура создания, так что вы можете добавить больше к существующим мастерам.
Специально для создания .ui.qml
(без файла qml) раздел Добавление мастеров на основе JSON в вышеприведенной документации работает просто отлично, например:
- Запустите Creator из командной строки с подробным параметром :
Qt_base\Tools\QtCreator\bin>qtcreator.exe -customwizard-verbose
- In Инструменты, параметры, клавиатура ... фильтр по Factory.Сброс и заполнить новый ярлык , если он не существует, например
Ctrl+Alt+F10
- в папке C: \ Qt \ Tools \ QtCreator \ share \ qtcreator \ templates \ wizards \ classes ... copyпапка мастера, используемая для создания
.ui.qml
qtquickui и переименования его на любое имя. - Теперь и самое главное, в новой папке отредактируйте файл мастера json настроить новый мастер ..
(1) Дайте новые id
следующие роли, описанные в ссылке
(2) в опции удалить опциюдля добавления файла qml вместе с формой.
(3) в поле pages удалите поле, запрашивающее имя файла qml.
(4) в разделе "name": "FormClass"
, измените "trText": "%{Class}Form"
на "trText": "Form"
(5) в Генераторы , удалите генератор файлов qml и сохраните генератор файлов .ui.qml
.
- После завершения редактирования вы можете активировать нового мастера, для этого нажмите созданный выше ярлык (
Ctrl+Alt+F10
) и все!теперь вы должны увидеть своего нового мастера, когда вы идете Добавить новый в раздел Qt ...
Вот модифицированная версия wizard.json
{
"version": 1,
"supportedProjectTypes": [ ],
"id": "S.QtQuickUi",
"category": "R.Qt",
"trDescription": "Creates a Qt Quick Designer UI form along with a matching QML file for implementation purposes. You can add the form and file to an existing Qt Quick Project.",
"trDisplayName": "QtQuick UI File Only",
"trDisplayCategory": "Qt",
"iconText": "ui.qml",
"featuresRequired": [ "QtSupport.Wizards.FeatureQtQuick.UiFiles" ],
"enabled": "%{JS: [ %{Plugins} ].indexOf('QmlJSEditor') >= 0}",
"options" : [
{ "key": "UiFile", "value": "%{FormClass}.%{JS: Util.preferredSuffix('application/x-qt.ui+qml')}" }
],
"pages" :
[
{
"trDisplayName": "Define Class",
"trShortTitle": "Details",
"typeId": "Fields",
"data" :
[
{
"name": "FormClass",
"trDisplayName": "Component form name:",
"mandatory": true,
"type": "LineEdit",
"data": {
"validator": "(?:[A-Z_][a-zA-Z_0-9]*|)",
"fixup": "%{JS: '%{INPUT}'.charAt(0).toUpperCase() + '%{INPUT}'.slice(1) }",
"trText": "Form"
}
},
{
"name": "TargetPath",
"type": "PathChooser",
"trDisplayName": "Path:",
"mandatory": true,
"data":
{
"kind": "existingDirectory",
"basePath": "%{InitialPath}",
"path": "%{InitialPath}"
}
}
]
},
{
"trDisplayName": "Project Management",
"trShortTitle": "Summary",
"typeId": "Summary"
}
],
"generators" :
[
{
"typeId": "File",
"data": [
{
"source": "fileForm.ui.qml.tpl",
"target": "%{TargetPath}/%{UiFile}",
"openInEditor": true
}
]
}
]
}