사용자 지정 마법사
대규모 애플리케이션 또는 여러 애플리케이션을 작업하는 팀이 있는 경우 팀원들이 프로젝트와 파일을 만드는 방식을 표준화하고 싶을 수 있습니다.
사용자 지정 마법사를 JSON 형식으로 만들 수 있습니다. 이러한 마법사는 wizard.json 이라는 JSON 구성 파일과 필요한 모든 템플릿 파일이 있는 마법사 템플릿 디렉터리에 저장됩니다. 구성 파일에는 마법사에 대한 정보, 사용할 수 있는 변수, 마법사 페이지 및 파일 생성을 위한 생성기를 지정하는 섹션이 있습니다.
사용자 지정 마법사를 만들려면 템플릿 디렉터리를 로컬 사용자의 설정 디렉터리에 있는 templates/wizards/ 디렉터리에 새 이름으로 복사합니다. 그런 다음 wizard.json 파일에서 마법사 ID를 변경합니다.
설정 디렉터리에 템플릿의 하위 디렉터리를 만들 수 있습니다. Qt Creator 에서는 표준 마법사를 유형별로 하위 디렉터리로 구성하지만 원하는 디렉터리에 마법사 디렉터리를 추가할 수 있습니다. 폴더 계층 구조는 Qt Creator 에서 마법사를 표시하는 순서에 영향을 주지 않습니다.
다른 사용자와 마법사를 공유하려면 마법사 디렉터리의 아카이브를 만들고 수신자에게 Qt Creator 에서 마법사를 검색하는 디렉토리 중 하나로 압축을 풀도록 지시할 수 있습니다.
Qt Creator 는 New Project 및 New File 대화 상자에서 찾은 마법사를 표시합니다. 각 마법사에 대해 아이콘(1), 표시 이름(2) 및 설명(3)이 표시됩니다.

마법사 유형
프로젝트 마법사에서는 프로젝트에 필요한 파일을 지정할 수 있습니다. 마법사 페이지를 추가하여 개발자가 프로젝트에 대한 설정을 지정할 수 있도록 할 수 있습니다.
파일 마법사는 비슷하지만 프로젝트 파일이 없습니다.
마법사 찾기
Qt Creator 다음 위치에서 마법사를 검색합니다:
- 공유 디렉터리에 있는 미리 정의된 마법사:
- Windows의 경우
share\qtcreator\templates\wizards - Linux의 경우
share/qtcreator/templates/wizards - macOS의 경우
Qt Creator.app/Contents/Resources/templates/wizards
- Windows의 경우
- 로컬 사용자의 설정 디렉터리에 있는 사용자 지정 마법사:
- Windows에서:
%APPDATA%\QtProject\qtcreator\templates\wizards - Linux 및 macOS에서:
$HOME/.config/QtProject/qtcreator/templates/wizards
- Windows에서:
마법사 개발을 위한 팁
일부 헬퍼 작업에 키보드 단축키를 지정하고 자세한 설명 출력을 사용 설정합니다.
작업을 키보드 단축키에 매핑하기
Qt Creator 에는 마법사 개발 프로세스를 개선할 수 있는 몇 가지 작업이 있습니다. 이러한 작업에는 기본적으로 키보드 단축키가 없으므로 트리거할 수 없습니다. 키보드 단축키를 활성화하려면 환경설정 > Environment > Keyboard > Wizard 에서 키보드 단축키를 지정하세요.
다음 작업은 마법사 개발에 도움이 될 수 있습니다:
| 작업 ID | 설명 |
|---|---|
| Inspect | 이 작업을 트리거하면 작업이 트리거된 시점의 마법사에 정의된 모든 필드 및 변수가 나열된 창이 열립니다. 이 작업을 활성화할 때마다 모달이 아닌 새 창이 열리므로 예를 들어 마법사의 여러 페이지에서 상태를 비교할 수 있습니다. |
| Factory.Reset | 이 작업을 트리거하면 Qt Creator 이 모든 마법사 팩토리를 잊어버리므로 예를 들어 File > New Project 을 열 때 모든 마법사 정의가 다시 로드됩니다. 이렇게 하면 마법사 정의에 대한 변경 사항을 표시하기 위해 Qt Creator 을 다시 시작하지 않아도 됩니다. |
자세한 출력
마법사 개발의 경우 -customwizard-verbose 인수를 사용하여 Qt Creator 을 시작하여 Qt Creator 이 wizard.json 파일을 찾아서 구문 분석한다는 확인을 받는 것이 좋습니다. 상세 모드에서는 마법사를 편집하는 동안 발생할 수 있는 가장 일반적인 오류인 구문 오류에 대한 정보를 표시합니다.
상세 모드에서 올바르게 설정된 각 마법사는 다음 줄에 따라 출력을 생성합니다:
Checking "/home/jsmith/.config/QtProject/qtcreator/templates/wizards/mywizard" for wizard.json. * Configuration found and parsed.
출력에는 Qt Creator 에서 wizard.json 파일을 확인하는 디렉터리 이름이 포함됩니다. 파일을 찾지 못하면 메시지가 표시되지 않습니다.
파일에 잘못된 아이콘 경로와 같은 오류가 있는 경우 다음과 같은 유형의 메시지가 표시됩니다:
Checking "/home/jsmith/.config/QtProject/qtcreator/templates/wizards/mywizard" for wizard.json. * Configuration found and parsed. * Failed to create: Icon file "/home/jsmith/.config/QtProject/qtcreator/templates/wizards/mywizard/../.. /global/genericfilewizard.png" not found.
명령줄 인수에 대한 자세한 내용은 명령줄 옵션을 참조하세요.
마법사를 빌드에 통합하기
Qt Creator 개발자이거나 다른 사람에게 제공하기 위해 자체 Qt Creator 버전을 빌드하는 경우 마법사를 Qt Creator 에 통합할 수 있습니다. 마법사를 Qt Creator 빌드의 일부로 제공하려면 마법사 파일을 Qt Creator 소스의 공유 디렉터리에 배치합니다. 그런 다음 Build 로 이동하여 Run CMake 을 선택합니다. 이렇게 하면 마법사에 추가한 새 파일이 다음 Qt Creator 빌드의 일부로 Qt Creator 소스 디렉터리에서 Qt Creator 빌드 디렉터리로 실제로 복사됩니다.
CMake를 실행하지 않으면 새로 빌드한 Qt Creator 빌드 디렉터리에 새 마법사가 존재하지 않으므로 새 마법사가 표시되지 않습니다. CMake가 make 또는 Ninja와 같은 빌드 도구에 소스 트리의 새 파일에 대해 알리지 않았기 때문에 해당 파일이 복사되지 않았습니다.
기본적으로 CMake는 소스 디렉터리에서 빌드 디렉터리의 하위 디렉터리로 복사할 고정된 파일 목록을 생성하고 런타임에 마법사를 확인합니다. 따라서 파일의 이름이나 위치가 변경될 때마다 CMake를 실행하거나 Factory.Reset 함수를 실행해야 합니다.
마법사에서 변수 사용
JSON 구성 파일과 템플릿 소스 파일의 문자열에 변수(%\{<variableName>\})를 사용할 수 있습니다. 변수 집합은 마법사와 해당 페이지에서 미리 정의되어 있습니다. wizard.json 파일의 options 섹션에 변수 키 이름과 값을 정의하여 나중에 사용할 수 있도록 새 변수를 바로 가기로 도입할 수 있습니다.
주어진 JavaScript 표현식을 평가하고 결과 JavaScript 값을 문자열로 변환하는 특수 변수 %\{JS:<JavaScript expression>\} 가 있습니다. JavaScript 표현식에서 value('<variableName>') 을 사용하여 마법사가 정의한 변수를 참조할 수 있습니다. 반환된 JavaScript 객체는 변수 값의 유형(문자열, 목록, 사전 또는 부울일 수 있음)을 갖습니다.
부울 값이 예상되고 문자열이 지정된 곳에서는 빈 문자열과 문자열 "false" 은 false 으로, 그 외의 모든 것은 true 으로 처리됩니다.
현지화 마법사
설정 이름이 tr 접두사로 시작하면 해당 값이 사용자에게 표시되며 번역되어야 합니다. 새 마법사가 Qt Creator 소스에 포함된 경우 번역 가능한 문자열은 Qt Creator 번역 파일에 나타나며 Qt Creator 의 일부로 번역할 수 있습니다. 또는 다음 구문을 사용하여 .json 파일에 번역을 배치할 수 있습니다:
"trDisplayName": { "C": "default", "en": "english", "de": "deutsch" }
예를 들어
"trDisplayName": { "C": "Project Location", "en": "Project Location", "de": "Projektverzeichnis" }
마법사 만들기
Qt Creator 에는 클래스, 파일 및 프로젝트를 추가하기 위한 마법사가 있습니다. 자체 마법사를 추가하기 위한 기초로 사용할 수 있습니다. 여기서는 C++ 마법사를 사용하여 .json 파일의 프로세스와 섹션 및 설정을 설명합니다.
이 예에서는 공유 디렉터리에 마법사 디렉터리를 만들고 Qt Creator 빌드 시스템에 통합하여 Qt Creator 바이너리와 함께 빌드의 일부로 배포할 수 있도록 합니다.

추가할 수 있는 페이지 및 위젯과 지원되는 속성에 대한 자세한 내용은 사용 가능한 페이지 및 사용 가능한 위젯을 참조하세요.
JSON 기반 C++ 클래스 마법사를 만들려면 다음과 같이 하세요:
-customwizard-verbose인수를 사용하여 Qt Creator 을 시작하여 마법사 개발 중에 피드백을 받습니다. 자세한 내용은 자세한 정보 출력을 참조하세요.- 마법사 개발을 위한 팁에 설명된 대로 Inspect 및 Factory.Reset 작업에 대한 키보드 단축키를 설정합니다.
share/qtcreator/templates/wizards/classes/cpp의 복사본을 만들고 이름을 바꿉니다. 예를 들어$HOME/.config/QtProject/qtcreator/templates/wizards/classes/mycpp.- Factory.Reset 작업을 사용하여 Qt Creator 을 다시 시작하지 않고 File > New File 에 마법사가 나타나도록 합니다.
- 마법사 구성 파일(
wizard.json)을 열어 편집합니다:- 다음 설정에 따라 마법사의 유형과 New File 대화 상자에서 마법사의 위치가 결정됩니다:
"version": 1, "supportedProjectTypes": [ ], "id": "A.Class", "category": "O.C++",
version는 파일 콘텐츠의 버전입니다. 이 값은 수정하지 마십시오.supportedProjectTypes는 기존 프로젝트에 새 빌드 대상을 추가할 때 마법사를 필터링하는 데 사용할 수 있는 선택적 설정입니다. 예를 들어 기존 qmake 프로젝트에 새 대상을 추가할 때 qmake 프로젝트를 생성하는 마법사만 표시합니다.가능한 값은 Qt Creator 또는
UNKNOWN_PROJECT에서 지원하는 빌드 시스템입니다(빌드 시스템을 지정하지 않은 경우):AutotoolsProjectManager.AutotoolsProject,CMakeProjectManager.CMakeProject,GenericProjectManager.GenericProject,PythonProject,Qbs.QbsProject,Qt4ProjectManager.Qt4Project(qmake 프로젝트),QmlProjectManager.QmlProjectid는 마법사의 고유 식별자입니다. 마법사는category내에서 알파벳 순서로 ID에 따라 정렬됩니다. 선행 문자를 사용하여 마법사의 위치를 지정할 수 있습니다. 이 값은 항상 변경해야 합니다. 예를 들어B.MyClass.이 정보는 마법사에서
%\{id\}로 표시됩니다.category는 목록에서 마법사를 배치할 카테고리입니다. New File 대화 상자에서 선행 문자를 사용하여 목록에서 카테고리의 위치를 지정할 수 있습니다.이 정보는 마법사에서
%\{category\}로 사용할 수 있습니다.
- 다음 설정은 New File 대화 상자에 표시되는 아이콘 및 텍스트를 지정합니다:
"trDescription": "Creates a C++ header and a source file for a new class that you can add to a C++ project.", "trDisplayName": "C++ Class", "trDisplayCategory": "C++", "iconText": "h/cpp", "enabled": "%{JS: isPluginRunning('cppeditor')}",
trDescriptiontrDisplayCategory을 선택하면 가장 오른쪽 패널에 나타납니다.이 정보는 마법사에서
%\{trDescription\}로 제공됩니다.trDisplayNametrDisplayCategory을 선택하면 가운데 패널에 표시됩니다.이 정보는 마법사에서
%\{trDisplayName\}로 표시됩니다.trDisplayCategoryNew File 대화 상자의 Files and Classes 아래에 나타납니다.이 정보는 마법사에서
%\{trDisplayCategory\}로 표시됩니다.icontrDisplayCategory을 선택하면 중간 패널의trDisplayName옆에 나타납니다.wizard.json파일에 대한 상대 경로를 지정하는 것이 좋지만 절대 경로를 사용할 수도 있습니다. 마법사 유형에 기본 아이콘을 사용하려면 이 값을 생략합니다.iconText기본 파일 아이콘의 텍스트 오버레이를 결정합니다.iconKind아이콘에 테마를 적용할지 여부를 결정합니다.imagetrDescription아래에 표시되는 이미지(예: 스크린샷)의 경로를 지정합니다.featuresRequired마법사가 의존하는 Qt Creator 기능을 지정합니다. 필요한 기능이 누락된 경우 마법사가 숨겨집니다. 예를 들어 Qt 버전이 설정된 키트가 없는 경우 qmake 기반 마법사가 숨겨집니다.마법사의 사용 가능 여부를 결정하기 위해 더 복잡한 로직을 표현해야 하는 경우에는
enabled을 사용하세요.이 정보는 마법사에서
%\{RequiredFeatures\}로 제공됩니다.featuresPreferred는 미리 선택할 빌드 및 실행 키트를 지정합니다.이 정보는 마법사에서
%\{PreferredFeatures\}로 제공됩니다.platformIndependent마법사가 모든 대상 플랫폼에서 지원되는 경우true로 설정됩니다. 기본적으로false로 설정됩니다.enabled는featuresRequired을 확인한 후 File > New Project 또는 New File 에 마법사가 나열되는지 여부를 결정하기 위해 평가됩니다.기본값은
true입니다.
options섹션에는 키 및 값 속성을 가진 객체 배열이 있습니다. 미리 정의된 변수 외에도 구성 및 템플릿 소스 파일에서 사용할 변수를 직접 정의할 수 있습니다. 예를 들어 C++ 클래스 생성 마법사에서는 다음 변수를 사용합니다:"options": [ { "key": "TargetPath", "value": "%{Path}" }, { "key": "HdrPath", "value": "%{Path}/%{HdrFileName}" }, { "key": "SrcPath", "value": "%{Path}/%{SrcFileName}" }, { "key": "CN", "value": "%{JS: Cpp.className(value('Class'))}" }, { "key": "Base", "value": "%{JS: value('BaseCB') === '' ? value('BaseEdit') : value('BaseCB')}" }, { "key": "isQObject", "value": "%{JS: (value('Base') === 'QObject' || value('Base') === 'QWidget' || value('Base') === 'QMainWindow' || value('Base') === 'QQuickItem' ) ? 'true' : 'false'}" }, { "key": "GUARD", "value": "%{JS: Cpp.headerGuard(value('HdrFileName'))}" }, { "key": "SharedDataInit", "value": "%{JS: value('IncludeQSharedData') ? 'data(new %{CN}Data)' : '' }" } ],
이 섹션은 선택 사항입니다. 변수의 더 많은 예는 다른 마법사의
wizard.json파일을 참조하세요.pages섹션은 마법사 페이지를 지정합니다. 사용되는 페이지는 마법사 유형에 따라 다릅니다. 마법사에 표준 페이지를 추가하거나 사용 가능한 위젯을 사용하여 새 페이지를 만들 수 있습니다. 다음 설정은 페이지의 표시 이름, 제목 및 유형을 지정합니다:"pages": [ { "trDisplayName": "Define Class", "trShortTitle": "Details", "typeId": "Fields", "data" : [ { "name": "Class", "trDisplayName": "Class name:", "mandatory": true, "type": "LineEdit", "data": { "trPlaceholder": "Fully qualified name, including namespaces", "validator": "(?:(?:[a-zA-Z_][a-zA-Z_0-9]*::)*[a-zA-Z_][a-zA-Z_0-9]*|)", "completion": "namespaces" } }, ... ]
typeId사용할 페이지를 지정합니다:Fields,File,Form,Kits,Project,VcsConfiguration,VcsCommand또는Summary.코드에서 사용되는 전체 페이지 ID는
"PE.Wizard.Page."앞에typeId로 구성됩니다. 페이지에 대한 자세한 내용은 사용 가능한 페이지를 참조하세요.trDisplayName페이지의 제목을 지정합니다. 기본적으로 페이지 제목이 사용됩니다.trShortTitle마법사의 사이드바에 사용되는 제목을 지정합니다. 기본적으로 페이지 제목이 사용됩니다.trSubTitle페이지의 부제목을 지정합니다. 기본적으로 페이지 제목이 사용됩니다.index페이지 ID를 지정하는 정수 값입니다. 설정하지 않으면 자동으로 할당됩니다.enabled페이지를 표시하려면true, 숨기려면false로 설정합니다. 각 마법사를 생성할 때 한 번만 평가됩니다.skipForSubprojects마법사의 페이지를 건너뛰는 데 사용할 수 있습니다. 빌드 정보 처리 등에 유용합니다. 각 마법사 페이지를 생성할 때 한 번만 평가됩니다.data마법사 페이지를 지정합니다. C++ 마법사에서는Fields페이지와Summary페이지를 지정합니다.Fields페이지에는CheckBox,ComboBox,LineEdit,PathChooser,Spacer위젯이 있습니다. 위젯에 대한 자세한 내용은 사용 가능한 위젯을 참조하세요.
generators섹션은 프로젝트에 추가할 파일을 지정합니다:"generators": [ { "typeId": "File", "data": [ { "source": "file.h", "target": "%{HdrPath}", "openInEditor": true "options": [ { "key": "Cpp:License:FileName", "value": "%{HdrFileName}" }, { "key": "Cpp:License:ClassName", "value": "%{CN}" } ] }, { "source": "file.cpp", "target": "%{SrcPath}", "openInEditor": true "options": [ { "key": "Cpp:License:FileName", "value": "%{SrcFileName}" }, { "key": "Cpp:License:ClassName", "value": "%{CN}" } ] } ]
typeId생성기 유형을 지정합니다. 현재는File또는Scanner만 지원됩니다.data를 사용하면 생성기를 추가로 구성할 수 있습니다.
- 다음 설정에 따라 마법사의 유형과 New File 대화 상자에서 마법사의 위치가 결정됩니다:
마법사에서 사용할 수 있는 값
wizard.json 파일 자체에서 가져온 속성( 마법사 만들기 참조) 외에도 Qt Creator 은 모든 JSON 기반 마법사에서 사용할 수 있는 몇 가지 정보를 제공합니다:
WizardDir는wizard.json파일의 절대 경로입니다.FeaturesQt Creator 에 구성된 키트를 통해 사용할 수 있는 모든 기능을 나열합니다.PluginsQt Creator 의 현재 인스턴스에서 실행 중인 모든 플러그인 목록이 있습니다.PlatformFile > New Project 또는 New File 대화 상자에서 선택한 플랫폼이 있습니다. 이 값은 비어 있을 수 있습니다.
다음 정보는 사용자가 Projects 보기에서 노드의 컨텍스트 메뉴를 통해 마법사를 트리거하는 경우에만 사용할 수 있습니다:
InitialPath선택한 노드의 경로와 함께ProjectExplorer.Profile.Ids선택한 노드의 프로젝트에 대해 구성된 키트 목록이 있습니다.
사용 가능한 페이지
wizard.json 파일의 pages 섹션에서 미리 정의된 페이지를 지정하여 마법사에 추가할 수 있습니다.
필드 페이지
필드 페이지는 typeId 값 Field 을 가지며 위젯이 있습니다. 위젯 정의에 대한 자세한 내용은 사용 가능한 위젯을 참조하세요.
"pages": [ { "trDisplayName": "Define Class", "trShortTitle": "Details", "typeId": "Fields", "data" : [ { "name": "Class", "trDisplayName": "Class name:", "mandatory": true, "type": "LineEdit", "data": { "trPlaceholder": "Fully qualified name, including namespaces", "validator": "(?:(?:[a-zA-Z_][a-zA-Z_0-9]*::)*[a-zA-Z_][a-zA-Z_0-9]*|)", "completion": "namespaces" } }, ... ],
파일 페이지
파일 페이지에는 typeId 값 File 이 있습니다. data 키를 생략하거나 빈 개체를 할당할 수 있습니다.
{
"trDisplayName": "Location",
"trShortTitle": "Location",
"typeId": "File"
},이 페이지는 마법사에서 InitialFileName 및 InitialPath 을 평가하여 초기 경로와 파일명을 설정합니다. 이 페이지에서는 TargetPath 을 생성할 파일의 전체 경로로 설정합니다.
양식 페이지
양식 페이지의 typeId 값은 Form 입니다. data 키를 생략하거나 빈 개체를 할당할 수 있습니다.
{
"trDisplayName": "Choose a Form Template",
"trShortTitle": "Form Template",
"typeId": "Form"
},이 페이지는 FormContents 을 양식 콘텐츠가 포함된 문자열 배열로 설정합니다.
Kits
키트 페이지의 typeId 값은 Kits 입니다. Kits 페이지의 data 섹션에는 다음과 같은 설정이 있는 개체가 있습니다:
projectFilePath프로젝트 파일 경로가 있는requiredFeatures키트가 페이지에 표시되어야 하는 기능을 설명하는 문자열 또는 객체 목록이 있습니다.문자열이 발견되면 이 기능을 설정해야 합니다. 대신 객체를 사용하는 경우 다음 설정이 확인됩니다:
feature문자열이어야 합니다(%\{<VariableName\}가 모두 확장됨).condition는true또는false로 평가되어야 하며 목록에서 기능을 할인하는 데 사용할 수 있습니다.
preferredFeatures와 같은 형식의 목록으로requiredFeatures.preferredFeatures에 나열된 모든 기능과 일치하는 모든 키트(requiredFeatures외에)가 이 페이지에서 미리 선택됩니다.
{
"trDisplayName": "Kit Selection",
"trShortTitle": "Kits",
"typeId": "Kits",
"data": { "projectFilePath": "%{ProFileName}" }
},이 페이지에서는 %\{Platform\} 을 평가하여 File > New Project 또는 New File 에서 선택한 플랫폼을 설정합니다.
참고: 이 페이지에서는 하위 프로젝트가 상위 프로젝트에서 이 정보를 파생하므로 필요하지 않은 경우 skipForSubprojects 을 true 으로 설정하여 페이지를 표시하지 않습니다.
프로젝트
프로젝트 페이지에는 typeId 값 Project 이 있습니다. 생성된 페이지에 표시되는 trDescription 속성을 가진 데이터나 개체가 없습니다. trDescription 기본값은 %\{trDescription\} 이며, wizard.json 파일의 trDescription 필드에서 가져온 정보로 채워집니다.
{
"trDisplayName": "Project Location",
"trShortTitle": "Location",
"typeId": "Project",
"data": { "trDescription": "A description of the wizard" }
},이 페이지에서는 InitialPath 을 평가하여 초기 프로젝트 경로를 설정합니다. 이 페이지는 ProjectDirectory 및 TargetPath 을 프로젝트 디렉토리로 설정합니다. 또한 페이지에서는 프로젝트가 다른 프로젝트에 명시적으로 추가된 경우 IsSubproject 을 true로 설정합니다. 이 경우 BuildSystem 은 상위 프로젝트의 빌드 시스템으로 설정됩니다.
요약
요약 페이지에는 typeId 값 Summary 이 있습니다. 여기에는 데이터가 없거나 빈 개체가 있습니다.
{
"trDisplayName": "Project Management",
"trShortTitle": "Summary",
"typeId": "Summary"
}이 페이지는 IsSubproject 을 최상위 프로젝트인 경우 false 으로 설정하고 그렇지 않으면 true 으로 설정합니다. VersionControl 을 사용 중인 버전 관리 시스템의 ID로 설정합니다.
VcsCommand
VcsCommand 페이지는 일련의 버전 관리 작업을 실행하고 결과를 표시합니다.
이 페이지의 data 섹션은 다음 키를 가진 객체를 사용합니다:
vcsId사용할 버전 관리 시스템의 ID와 함께.trRunMessage버전 관리가 실행되는 동안 표시할 메시지와 함께.extraArguments버전 관리 체크아웃 명령에 전달되는 추가 인수를 정의하는 문자열 또는 문자열 목록.repository버전 관리 시스템에서 체크 아웃할 URL과 함께.baseDirectory체크 아웃 작업을 실행할 디렉터리와 함께.checkoutName체크 아웃된 데이터를 저장하기 위해 생성될 하위 디렉터리와 함께.extraJobs초기 체크 아웃 후 실행할 추가 명령을 정의하는 객체 목록과 함께. 예를 들어 원격 리포지토리를 추가하거나 버전 관리 시스템의 구성 변수를 설정하는 등 리포지토리를 추가로 사용자 지정하는 데 사용할 수 있습니다.각
extraJob은 다음과 같은 설정을 가진 개체에 의해 정의됩니다:skipIfEmptytrue로 설정하면 실행할 명령에서 빈 인수를 자동으로 제거합니다. 기본값은true입니다.directory로 설정하면 실행할 명령의 작업 디렉터리를 지정합니다. 기본값은baseDirectory.command실행할 명령과 함께arguments에 전달할 인수를command.timeOutFactor오래 실행되는 명령에 대한 기본 시간 초과를 확장합니다.enabled이 작업을 실제로 실행할지 여부를 결정하기 위해 평가됩니다.
VcsConfiguration
VcsConfiguration 페이지는 사용자에게 버전 관리 시스템을 구성하도록 요청하고 구성에 성공한 경우에만 Next 버튼을 활성화합니다.
이 페이지의 data 섹션은 vcsId 키가 있는 개체를 사용합니다. 이 설정은 구성할 버전 관리 시스템을 정의합니다.
사용 가능한 위젯
필드 페이지에 다음과 같은 위젯을 추가할 수 있습니다:
- 확인란
- 콤보 상자
- 레이블
- 줄 편집
- 경로 선택기
- 스페이서
- 텍스트 편집
참고: 마법사는 다음 섹션에 설명된 설정만 지원합니다.
각 위젯에 대해 다음 설정을 지정합니다:
name위젯 이름을 지정합니다. 이 이름은 값에 다시 액세스할 때 변수 이름으로 사용됩니다.trDisplayNameUI에 표시되는 레이블 텍스트를 지정합니다(span이true이 아닌 경우).type위젯의 유형을 지정합니다:CheckBox,ComboBox,Label,LineEdit,PathChooser,Spacer,TextEdit입니다.trToolTip마우스로 필드를 가리킬 때 표시할 툴팁을 지정합니다.isComplete는 모든 필드에 대해 평가되어 마법사의 Next 버튼을 사용할 수 있는지 여부를 결정합니다. 이 작업을 수행하려면 모든 필드의isComplete가true로 평가되어야 합니다. 이 설정의 기본값은true입니다.trIncompleteMessage필드의isComplete가false로 평가될 때 표시됩니다.persistenceKey사용자 선택이 영구적으로 유지되도록 합니다. 이 값은 설정 키로 간주됩니다. 사용자가 위젯의 기본값을 변경하면 사용자의 값이 저장되어 다음에 마법사를 실행할 때 새 기본값이 됩니다.visible위젯이 표시되면true로 설정되고, 그렇지 않으면false으로 설정됩니다. 기본적으로true로 설정됩니다.enabled위젯이 활성화된 경우true로 설정되고, 그렇지 않으면false으로 설정됩니다. 기본적으로true로 설정됩니다.mandatory이 위젯이 활성화되려면 Next 버튼에 대한 값이 있어야 하는 경우true로 설정됩니다. 기본적으로true로 설정됩니다.span레이블을 숨기고 양식에 걸쳐서 표시되도록 설정됩니다. 기본적으로false로 설정됩니다. 자세한 내용은 마법사에서 변수 사용하기를 참조하세요.data다음 섹션에 설명된 대로 특정 위젯 유형에 대한 추가 설정을 지정합니다.
확인란
{
"name": "IncludeQObject",
"trDisplayName": "Include QObject",
"type": "CheckBox",
"data":
{
"checkedValue": "QObject",
"uncheckedValue": "",
"checked": "%{JS: value('BaseCB') === 'QObject' ? 'true' : 'false'}"
}
},checkedValue확인란을 활성화할 때 설정할 값을 지정합니다. 기본값은true로 설정됩니다.uncheckedValue체크 박스를 비활성화할 때 설정할 값을 지정합니다. 기본적으로false로 설정됩니다.checked확인란이 활성화된 경우true로 설정되며, 그렇지 않으면false으로 설정됩니다.
목록
참고: 콤보 상자 및 아이콘 목록 유형은 모두 목록 유형의 변형이므로 동일한 속성을 가질 수 있습니다.
{
"name": "BaseCB",
"trDisplayName": "Base class:",
"type": "ComboBox",
"data":
{
"items": [ { "trKey": "<Custom>", "value": "" },
"QObject", "QWidget", "QMainWindow", "QQuickItem" ]
}
},또는
{
"name": "ChosenBuildSystem",
"trDisplayName": "Choose your build system:",
"type": "IconList",
"data":
{
"items": [
{ "trKey": "CMake", "value": "cmake", "icon": "cmake_icon.png", "trToolTip": "Building with CMake." },
{ "trKey": "Qbs", "value": "qbs", "icon": "qbs_icon.png", "trToolTip": "Building with Qbs." },
{ "trKey": "QMake", "value": "qmake", "icon": "qmake_icon.png", "trToolTip": "Building with QMake." }
]
}
},items는 목록 유형에 넣을 항목의 목록을 지정합니다. 목록에는 JSON 객체와 일반 문자열이 모두 포함될 수 있습니다. JSON 객체의 경우trKey및value쌍을 정의하는데, 여기서trKey은 사용자에게 표시되는 목록 항목이고value은 해당 항목과 관련된 데이터입니다. 또한icon을 사용하여 목록 항목의 아이콘을 지정하고trToolTip을 사용하여 목록 항목의 툴팁을 지정할 수 있습니다.index목록 유형이 활성화될 때 선택할 인덱스를 지정합니다. 기본적으로0로 설정되어 있습니다.disabledIndex목록 유형이 비활성화된 경우 표시할 인덱스를 지정합니다.
레이블
{
"name": "LabelQQC_2_0",
"type": "Label",
"span": true,
"visible": "%{JS: value('CS') === 'QQC_2_0'}",
"data":
{
"wordWrap": true,
"trText": "Creates a deployable Qt Quick 2 application using Qt Quick Controls.",
}
},wordWrap을true으로 설정하면 단어 줄 바꿈이 활성화됩니다. 기본적으로false로 설정되어 있습니다.trText표시할 레이블 텍스트가 있습니다.
줄 편집
{
"name": "Class",
"trDisplayName": "Class name:",
"mandatory": true,
"type": "LineEdit",
"data": {
"trPlaceholder": "Fully qualified name, including namespaces",
"validator": "(?:(?:[a-zA-Z_][a-zA-Z_0-9]*::)*[a-zA-Z_][a-zA-Z_0-9]*|)",
"completion": "namespaces"
}
},
{
"name": "BaseEdit",
"type": "LineEdit",
"enabled": "%{JS: value('BaseCB') === '' ? 'true' : 'false'}",
"mandatory": false,
"data":
{
"trText": "%{BaseCB}",
"trDisabledText": "%{BaseCB}",
"completion": "classes"
}
},trText표시할 번역 가능한 기본 텍스트를 지정합니다.text표시할 번역할 수 없는 기본 텍스트를 지정합니다.trDisabledText비활성화 필드에 표시할 번역 가능한 텍스트를 지정합니다.disabledText비활성화 필드에 표시할 번역할 수 없는 텍스트를 지정합니다.completion클래스 이름 줄 편집에 기존namespaces, 기본 클래스 줄 편집에 기존classes을 나열합니다. 이 값은 일반적으로 해당 필드에 사용할 수 있는 히스토리 완성기를 대체합니다.trPlaceholder번역 가능한 플레이스홀더 텍스트를 지정합니다.placeholder번역할 수 없는 플레이스홀더 텍스트를 지정합니다.validator줄 편집의 유효성을 검사할 QRegularExpression 을 지정합니다.fixup문자열을 수정하는 데 사용되는 변수를 지정합니다. 예를 들어 줄 편집의 첫 번째 문자를 대문자로 바꿉니다.isPassword는 줄 편집에 마스킹될 비밀번호가 있음을 지정하는 부울 값입니다.historyId는 히스토리 작성기의 항목 목록 이름을 지정하는 키입니다. 이 값과completion은 상호 배타적이므로 두 값을 동시에 설정하지 마세요.restoreLastHistoryItem는 마지막 기록 항목이 줄 편집의 기본 텍스트로 자동 설정되도록 지정하는 부울입니다. 이 키는historyId도 설정된 경우에만 true로 설정할 수 있습니다.
경로 선택기
{
"name": "Path",
"type": "PathChooser",
"trDisplayName": "Path:",
"mandatory": true,
"data":
{
"kind": "existingDirectory",
"basePath": "%{InitialPath}",
"path": "%{InitialPath}"
}
},path선택한 경로를 지정합니다.basePath조회 기준이 되는 기준 경로를 지정합니다.kind찾을 대상을 정의합니다:existingDirectory,directory,file,saveFile,existingCommand,command, 또는any입니다.
스페이서
{
"name": "Sp1",
"type": "Spacer",
"data":
{
"factor": 2
}
},factor 설정은 이 스페이서의 레이아웃 간격에 곱할 계수(정수)를 지정합니다.
텍스트 편집
{
"name": "TextField",
"type": "TextEdit",
"data" :
{
"trText": "This is some text",
"richText": true
}
}trText표시할 번역 가능한 텍스트를 지정합니다.text표시할 번역할 수 없는 텍스트를 지정합니다.trDisabledText텍스트 편집이 비활성화되었을 때 표시할 번역 가능한 텍스트를 지정합니다.disabledText텍스트 편집이 비활성화되었을 때 표시할 번역할 수 없는 텍스트를 지정합니다.richText서식 있는 텍스트의 경우true로 설정되며, 그렇지 않으면false으로 설정됩니다.
사용 가능한 생성기
Qt Creator JSON 마법사에는 두 가지 생성기를 지원합니다.
파일 생성기
File 생성기는 data 섹션에 객체 목록을 기대합니다. 각 개체는 처리하여 %\{TargetPath\} (또는 다른 위치)로 복사할 파일 하나를 정의합니다.
각 파일 객체는 다음과 같은 설정을 취할 수 있습니다:
sourcewizard.json파일이 있는 디렉터리를 기준으로 템플릿 파일의 경로와 파일명을 지정합니다.source을 설정하지 않으면target에 지정된 이름의 파일이 다른 방법으로 생성된 것으로 간주합니다. 이 옵션은 예를 들어 버전 관리 시스템에서 데이터를 체크아웃한 후 프로젝트로 열 올바른 파일을 지정하는 데 유용합니다.target생성된 파일의 위치를 절대 또는%{TargetPath}에 대한 상대 위치로 지정하며, 일반적으로 마법사 페이지 중 하나에서 설정합니다.openInEditortrue로 설정된 경우 해당 편집기에서 파일을 엽니다. 이 설정의 기본값은false입니다.openAsProjecttrue으로 설정된 경우 프로젝트 파일을 Qt Creator 에서 엽니다. 이 설정의 기본값은false입니다.isBinary로 설정된 경우 파일을 바이너리로 취급하고 파일에서 바꾸기가 수행되지 않도록 합니다.true로 설정된 경우 이 설정의 기본값은false입니다.condition조건이true을 반환하면 파일을 생성합니다. 이 설정의 기본값은true입니다. 자세한 내용은 마법사에서 변수 사용을 참조하세요.
스캐너 생성기
Scanner 생성기는 %\{TargetPath\} 을 스캔하여 거기서 찾은 모든 파일 목록을 생성합니다.
Scanner 생성기는 data 섹션에서 다음 설정으로 하나의 개체를 가져옵니다:
binaryPattern는 발견된 모든 파일 이름과 일치하는 정규식입니다. 일치하는 모든 파일은 바이너리 파일로 표시되며 이 파일에 대해서는 템플릿 대체를 건너뜁니다. 이 설정의 기본값은 빈 패턴이므로 어떤 파일도 바이너리로 표시되지 않습니다.subdirectoryPatterns는 정규식 패턴의 목록입니다. 이 패턴 중 하나와 일치하는 디렉터리는 최상위 디렉터리뿐만 아니라 모든 디렉터리를 검사합니다. 이 설정의 기본값은 빈 목록이며 하위 디렉터리는 검사되지 않습니다.
Copyright © The Qt Company Ltd. and other contributors. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.