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

마법사 유형
프로젝트 마법사에서는 프로젝트에 필요한 파일을 지정할 수 있습니다. 개발자가 프로젝트에 대한 설정을 지정할 수 있도록 마법사 페이지를 추가할 수 있습니다.
파일 마법사는 이와 유사하지만, 프로젝트 파일이 없습니다.
마법사 찾기
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 - 리눅스 및 macOS에서:
$HOME/.config/QtProject/qtcreator/templates/wizards
- Windows의 경우:
마법사 개발 팁
일부 보조 동작에 키보드 단축키를 할당하고 상세 출력 기능을 켜세요.
동작을 키보드 단축키에 매핑하기
Qt Creator 에는 마법사 개발 과정을 개선할 수 있는 몇 가지 동작이 있습니다. 이 동작들은 기본적으로 키보드 단축키가 설정되어 있지 않아 실행할 수 없습니다. 이를 활성화하려면 ‘ Preferences ’ > ‘ Environment ’ > ‘ Keyboard ’ > ‘ Wizard ’ 경로에서 키보드 단축키를 지정하십시오.
다음 작업들은 마법사 개발에 도움이 될 수 있습니다:
| 액션 ID | 설명 |
|---|---|
| Inspect | 이 액션을 실행하면 액션이 실행된 시점에 마법사에 정의된 모든 필드와 변수가 나열된 창이 열립니다. 이 액션을 실행할 때마다 새로운 비모달 창이 열리므로, 예를 들어 마법사의 서로 다른 페이지에서 상태를 비교할 수 있습니다. |
| Factory.Reset | 이 액션을 트리거하면 Qt Creator 가 모든 마법사 팩토리를 잊어버리게 되어, 예를 들어 File > New Project 를 열 때 모든 마법사 정의를 다시 불러오게 됩니다. 이렇게 하면 마법사 정의에 대한 변경 사항이 반영되도록 Qt Creator 를 다시 시작할 필요가 없습니다. |
상세 출력
마법사 개발 시, Qt Creator 를 -customwizard-verbose 인수와 함께 실행하여 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 섹션에서 변수 키 이름과 값을 정의하여 나중에 사용할 수 있는 단축키로 새로운 변수를 도입할 수 있습니다.
%\{JS:<JavaScript expression>\} 라는 특수 변수가 있는데, 이는 주어진 JavaScript 표현식을 평가하고 결과 JavaScript 값을 문자열로 변환합니다. 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')}",
trDescription'trDisplayCategory'을 선택하면 가장 오른쪽 패널에 표시됩니다.이 정보는 마법사에서 ‘
%\{trDescription\}’ 항목으로 확인할 수 있습니다.trDisplayName'trDisplayCategory'를 선택하면 가운데 패널에 표시됩니다.이 정보는 마법사에서 ‘
%\{trDisplayName\}’ 항목으로 확인할 수 있습니다.trDisplayCategoryNew File 대화 상자의 ‘ ’ 항목 아래에 표시됩니다. Files and Classes이 정보는 마법사에서 ‘
%\{trDisplayCategory\}’ 항목으로 확인할 수 있습니다.icon'trDisplayCategory'을 선택하면 중간 패널의 'trDisplayName' 옆에 이 항목이 표시됩니다. 'wizard.json' 파일을 기준으로 한 상대 경로를 지정하는 것이 좋지만, 절대 경로를 사용할 수도 있습니다. 이 값을 생략하면 해당 마법사 유형에 대한 기본 아이콘이 사용됩니다.iconText기본 파일 아이콘에 표시될 텍스트 오버레이를 결정합니다.iconKind아이콘에 테마가 적용될지 여부를 결정합니다.imagetrDescription아래에 표시될 이미지(예: 스크린샷)의 경로를 지정합니다.featuresRequired위저드가 의존하는 Qt Creator 기능을 지정합니다. 필수 기능이 누락된 경우 위저드가 숨겨집니다. 예를 들어, Qt 버전이 설정된 키트가 없으면 qmake 기반 위저드가 숨겨집니다.마법사의 사용 가능 여부를 결정하기 위해 더 복잡한 논리를 표현해야 하는 경우
enabled를 사용하십시오.이 정보는 마법자 내에서 `
%\{RequiredFeatures\}`로 확인할 수 있습니다.featuresPreferred사전 선택할 빌드 및 실행 키트를 지정합니다.이 정보는 마법사에서
%\{PreferredFeatures\}로 확인할 수 있습니다.platformIndependent마법사가 모든 대상 플랫폼에서 지원되는 경우 이 값은true로 설정됩니다. 기본적으로 이 값은false로 설정되어 있습니다.enabledfeaturesRequired가 확인된 후, > 또는 에 마법사가 나열되어 있는지 여부를 판단하기 위해 이 값이 평가됩니다. 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를 지정하는 정수 값입니다. 설정하지 않으면 자동으로 할당됩니다.enabledtrue로 설정하면 페이지가 표시되고, 로 설정하면 페이지가 숨겨집니다. 이 값은 해당 마법사를 생성할 때 한 번만 평가됩니다.falseskipForSubprojects위저드의 특정 페이지를 건너뛰는 데 사용할 수 있습니다. 예를 들어 빌드 정보를 처리할 때 유용합니다. 이 값은 해당 위저드 페이지를 생성할 때 한 번만 평가됩니다.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 기반 마법사에서 사용할 수 있는 몇 가지 정보를 제공합니다:
WizardDirwizard.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로 평가되어야 하며, 이 기능을 목록에서 제외하는 데 사용할 수 있습니다.
preferredFeaturesrequiredFeatures과 동일한 형식의 목록입니다. 에 나열된 모든 기능( 에 추가된 기능 포함)과 일치하는 키트는 이 페이지에서 미리 선택됩니다.preferredFeaturesrequiredFeatures
{
"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`는 다음 설정을 가진 객체로 정의됩니다:skipIfEmpty이 값을 `true`로 설정하면 실행할 명령어에서 빈 인수를 자동으로 제거합니다. 기본값은 `true`입니다.directory실행할 명령의 작업 디렉터리입니다. 기본값은baseDirectory의 값입니다.command실행할 명령어입니다.argumentscommand에 전달할 인수를 지정합니다.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`로 설정됩니다.
목록
참고: 콤보박스( Combo Box)와 아이콘 목록(Icon List)유형은 모두 목록(List) 유형의 변형이므로, 동일한 속성을 가질 수 있습니다.
{
"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목록 유형이 비활성화되었을 때 표시할 인덱스를 지정합니다.
Label
{
"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.",
}
},wordWraptext는 줄 바꿈을 활성화하려면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조회 시 기준이 되는 기본 경로를 지정합니다.kindexistingDirectory, , , , , 또는 중 검색할 항목을 정의합니다.directoryfilesaveFileexistingCommandcommandany
스페이서
{
"name": "Sp1",
"type": "Spacer",
"data":
{
"factor": 2
}
},factor 설정은 이 스페이서의 레이아웃 간격을 곱할 계수(정수)를 지정합니다.
텍스트 편집
{
"name": "TextField",
"type": "TextEdit",
"data" :
{
"trText": "This is some text",
"richText": true
}
}trText표시할 번역 가능한 텍스트를 지정합니다.texttext_display_texttext_non_translatable_texttrDisabledText텍스트 편집이 비활성화되었을 때 표시할 번역 가능한 텍스트를 지정합니다.disabledText텍스트 편집이 비활성화되었을 때 표시할 번역 불가능한 텍스트를 지정합니다.richText리치 텍스트의 경우 `true`로 설정되며, 그렇지 않은 경우 `false`로 설정됩니다.
사용 가능한 생성기
Qt Creator JSON 마법사에 대해 두 가지 다른 생성기를 지원합니다.
파일 생성기
File 생성기는 data 섹션에 객체 목록을 기대합니다. 각 객체는 처리되어 %\{TargetPath\} (또는 다른 위치)로 복사될 하나의 파일을 정의합니다.
각 파일 객체는 다음 설정을 가질 수 있습니다:
sourcewizard.json파일이 있는 디렉터리를 기준으로 템플릿 파일의 경로와 파일 이름을 지정합니다.source가 설정되지 않은 경우,target에 지정된 이름의 파일은 다른 방법으로 생성된 것으로 간주됩니다. 이는 예를 들어, 버전 관리 시스템에서 데이터를 체크아웃한 후 프로젝트로 열어야 할 올바른 파일을 지정하는 데 유용합니다.target생성된 파일의 위치를 지정하며, 절대 경로이거나%{TargetPath}을 기준으로 한 상대 경로일 수 있습니다. 이 설정은 일반적으로 마법사 페이지 중 하나에서 설정됩니다.openInEditortrue로 설정된 경우 해당 파일을 적절한 편집기에서 엽니다. 이 설정의 기본값은 입니다.falseopenAsProjectfalse이 설정이 로 설정된 경우, 프로젝트 파일을 에서 엽니다. 이 설정의 기본값은 입니다. Qt CreatortrueisBinary이 설정이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.