이 페이지에서

사용자 정의 마법사

대규모 애플리케이션 하나 또는 여러 애플리케이션을 개발하는 팀이 있다면, 팀원들이 프로젝트와 파일을 생성하는 방식을 표준화하고 싶을 수 있습니다.

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의 경우: %APPDATA%\QtProject\qtcreator\templates\wizards
    • 리눅스 및 macOS에서: $HOME/.config/QtProject/qtcreator/templates/wizards

마법사 개발 팁

일부 보조 동작에 키보드 단축키를 할당하고 상세 출력 기능을 켜세요.

동작을 키보드 단축키에 매핑하기

Qt Creator 에는 마법사 개발 과정을 개선할 수 있는 몇 가지 동작이 있습니다. 이 동작들은 기본적으로 키보드 단축키가 설정되어 있지 않아 실행할 수 없습니다. 이를 활성화하려면 ‘ Preferences ’ > ‘ Environment ’ > ‘ Keyboard ’ > ‘ Wizard ’ 경로에서 키보드 단축키를 지정하십시오.

다음 작업들은 마법사 개발에 도움이 될 수 있습니다:

액션 ID설명
Inspect이 액션을 실행하면 액션이 실행된 시점에 마법사에 정의된 모든 필드와 변수가 나열된 창이 열립니다. 이 액션을 실행할 때마다 새로운 비모달 창이 열리므로, 예를 들어 마법사의 서로 다른 페이지에서 상태를 비교할 수 있습니다.
Factory.Reset이 액션을 트리거하면 Qt Creator 가 모든 마법사 팩토리를 잊어버리게 되어, 예를 들어 File > New Project 를 열 때 모든 마법사 정의를 다시 불러오게 됩니다. 이렇게 하면 마법사 정의에 대한 변경 사항이 반영되도록 Qt Creator 를 다시 시작할 필요가 없습니다.

상세 출력

마법사 개발 시, Qt Creator-customwizard-verbose 인수와 함께 실행하여 Qt Creatorwizard.json 파일을 찾아 파싱하는지 확인하는 것을 권장합니다. 상세 모드에서는 구문 오류에 대한 정보를 표시하며, 이는 마법사를 편집하는 동안 가장 흔히 발생할 수 있는 오류입니다.

상세 모드에서는 올바르게 설정된 각 마법사에 대해 다음과 같은 형식의 출력이 생성됩니다.

Checking "/home/jsmith/.config/QtProject/qtcreator/templates/wizards/mywizard"
for wizard.json.
* Configuration found and parsed.

이 출력에는 Qt Creatorwizard.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 바이너리와 함께 배포될 수 있도록 합니다.

C++ 클래스 대화 상자

추가할 수 있는 페이지 및 위젯과 지원되는 속성에 대한 자세한 내용은 사용 가능한 페이지사용 가능한 위젯을 참조하십시오.

JSON 기반 C++ 클래스 마법사를 만들려면:

  1. 마법사 개발 중에 피드백을 받으려면 -customwizard-verbose 인수를 지정하여 Qt Creator 를 실행하십시오. 자세한 내용은 ‘상세 출력’을 참조하십시오.
  2. '마법사 개발 팁'에 설명된 대로 InspectFactory.Reset 작업에 대한 키보드 단축키를 설정합니다.
  3. share/qtcreator/templates/wizards/classes/cpp 의 복사본을 만들고 이름을 변경하십시오. 예를 들어, $HOME/.config/QtProject/qtcreator/templates/wizards/classes/mycpp 로 변경합니다.
  4. ' Factory.Reset ' 액션을 사용하여 ' Qt Creator'을 다시 시작하지 않고도 ' File > New File '에 마법사가 표시되도록 하십시오.
  5. 마법사 구성 파일인 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.QmlProject

      • id 는 해당 마법사의 고유 식별자입니다. 마법사는 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\} ’ 항목으로 확인할 수 있습니다.

      • trDisplayCategory New File 대화 상자의 ‘ ’ 항목 아래에 표시됩니다. Files and Classes

        이 정보는 마법사에서 ‘ %\{trDisplayCategory\} ’ 항목으로 확인할 수 있습니다.

      • icon ' trDisplayCategory '을 선택하면 중간 패널의 ' trDisplayName ' 옆에 이 항목이 표시됩니다. ' wizard.json ' 파일을 기준으로 한 상대 경로를 지정하는 것이 좋지만, 절대 경로를 사용할 수도 있습니다. 이 값을 생략하면 해당 마법사 유형에 대한 기본 아이콘이 사용됩니다.
      • iconText 기본 파일 아이콘에 표시될 텍스트 오버레이를 결정합니다.
      • iconKind 아이콘에 테마가 적용될지 여부를 결정합니다.
      • image trDescription 아래에 표시될 이미지(예: 스크린샷)의 경로를 지정합니다.
      • 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, PathChooserSpacer 위젯이 포함되어 있습니다. 위젯에 대한 자세한 내용은 ‘사용 가능한 위젯’을 참조하십시오.
    • 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 제너레이터를 추가로 구성할 수 있습니다.

마법사에서 사용할 수 있는 값

wizard.json 파일 자체에서 가져온 속성( ‘마법사 만들기’ 참조) 외에도, Qt Creator 는 모든 JSON 기반 마법사에서 사용할 수 있는 몇 가지 정보를 제공합니다:

  • WizardDir wizard.json 파일의 절대 경로입니다.
  • Features Qt Creator 에 구성된 키트를 통해 사용할 수 있는 모든 기능을 나열합니다.
  • Plugins Qt Creator 의 현재 인스턴스에서 실행 중인 모든 플러그인의 목록을 포함합니다.
  • Platform File > ‘ ’ 또는 ‘ ’ 대화 상자에서 선택된 플랫폼을 나타냅니다. 이 값은 비어 있을 수 있습니다. 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"
},

이 페이지는 마법사에서 지정한 InitialFileNameInitialPath 값을 평가하여 초기 경로와 파일 이름을 설정합니다. 또한 이 페이지는 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 에서 선택된 플랫폼을 설정합니다.

참고: 하위 프로젝트는 상위 프로젝트에서 이 정보를 가져오기 때문에, 이 페이지가 필요하지 않은 경우 표시되지 않도록페이지에서는 skipForSubprojectstrue 으로 설정합니다.

프로젝트

프로젝트 페이지의 typeId 값은 Project 입니다. 이 페이지에는 데이터가 없거나, 생성된 페이지에 표시될 trDescription 속성을 가진 객체가 있습니다. trDescription 의 기본값은 %\{trDescription\} 이며, 이 값은 wizard.json 파일의 trDescription 필드에서 가져온 정보로 채워집니다.

{
    "trDisplayName": "Project Location",
    "trShortTitle": "Location",
    "typeId": "Project",
    "data": { "trDescription": "A description of the wizard" }
},

이 페이지는 InitialPath 을 평가하여 초기 프로젝트 경로를 설정합니다. 또한 이 페이지는 ProjectDirectoryTargetPath 을 프로젝트 디렉터리로 설정합니다. 아울러 프로젝트가 다른 프로젝트에 명시적으로 추가된 경우, 이 페이지는 IsSubproject 을 true로 설정합니다. 이 경우 BuildSystem 은 상위 프로젝트의 빌드 시스템으로 설정됩니다.

요약

요약 페이지의 typeId 값은 Summary 입니다. 데이터가 없거나 빈 객체입니다.

{
    "trDisplayName": "Project Management",
    "trShortTitle": "Summary",
    "typeId": "Summary"
}

이 페이지는 최상위 프로젝트인 경우 IsSubprojectfalse 로, 그렇지 않은 경우 true 로 설정합니다. 또한 VersionControl 를 사용 중인 버전 관리 시스템의 ID로 설정합니다.

VcsCommand

VcsCommand 페이지는 일련의 버전 관리 작업을 실행하고 그 결과를 표시합니다.

이 페이지의 ‘ data ’ 섹션은 다음 키를 가진 객체를 입력으로 받습니다:

  • vcsId 사용할 버전 관리 시스템의 ID.
  • trRunMessage 버전 관리 작업이 실행되는 동안 표시할 메시지.
  • extraArguments 버전 관리 체크아웃 명령에 전달할 추가 인수를 정의하는 문자열 또는 문자열 목록입니다.
  • repository 버전 관리 시스템에서 체크아웃할 대상의 URL입니다.
  • baseDirectory 체크아웃 작업을 수행할 디렉터리입니다.
  • checkoutName 체크아웃된 데이터를 저장하기 위해 생성될 하위 디렉터리.
  • extraJobs 초기 체크아웃 후 실행할 추가 명령을 정의하는 객체 목록입니다. 이를 통해 추가 원격 저장소를 추가하거나 버전 관리 시스템의 구성 변수를 설정하는 등 저장소를 더욱 세부적으로 사용자 정의할 수 있습니다.

    각 ` extraJob `는 다음 설정을 가진 객체로 정의됩니다:

    • skipIfEmpty 이 값을 ` true`로 설정하면 실행할 명령어에서 빈 인수를 자동으로 제거합니다. 기본값은 ` true`입니다.
    • directory 실행할 명령의 작업 디렉터리입니다. 기본값은 baseDirectory 의 값입니다.
    • command 실행할 명령어입니다.
    • arguments command 에 전달할 인수를 지정합니다.
    • timeOutFactor 장시간 실행되는 명령에 대한 기본 타임아웃을 연장합니다.
    • enabled 이 작업이 실제로 실행될지 여부를 결정하기 위해 평가됩니다.

VcsConfiguration

VcsConfiguration 페이지에서는 사용자에게 버전 관리 시스템을 구성하도록 요청하며, 구성이 성공적으로 완료된 후에만 Next 버튼을 활성화합니다.

이 페이지의 ' data ' 섹션은 vcsId 키가 포함된 객체를 받습니다. 이 설정은 구성될 버전 관리 시스템을 정의합니다.

사용 가능한 위젯

필드 페이지에는 다음 위젯을 추가할 수 있습니다:

  • 체크박스
  • 콤보 박스
  • 라벨
  • 라인 편집
  • 경로 선택기
  • 스페이서
  • 텍스트 편집

참고: 마법사는 다음 섹션에 설명된 설정만 지원합니다.

각 위젯에 대해 다음 설정을 지정하십시오.

  • name 위젯 이름을 지정합니다. 이 이름은 나중에 해당 값에 다시 접근할 때 변수 이름으로 사용됩니다.
  • trDisplayName UI에 표시되는 레이블 텍스트를 지정합니다( spantrue 가 아닌 경우).
  • type 위젯의 유형을 지정합니다: CheckBox, ComboBox, Label, LineEdit, PathChooser, SpacerTextEdit.
  • 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.",
    }
},
  • wordWrap text는 줄 바꿈을 활성화하려면 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 text_display_texttext_non_translatable_text
  • trDisabledText 텍스트 편집이 비활성화되었을 때 표시할 번역 가능한 텍스트를 지정합니다.
  • disabledText 텍스트 편집이 비활성화되었을 때 표시할 번역 불가능한 텍스트를 지정합니다.
  • richText 리치 텍스트의 경우 ` true `로 설정되며, 그렇지 않은 경우 ` false`로 설정됩니다.

사용 가능한 생성기

Qt Creator JSON 마법사에 대해 두 가지 다른 생성기를 지원합니다.

파일 생성기

File 생성기는 data 섹션에 객체 목록을 기대합니다. 각 객체는 처리되어 %\{TargetPath\} (또는 다른 위치)로 복사될 하나의 파일을 정의합니다.

각 파일 객체는 다음 설정을 가질 수 있습니다:

  • source wizard.json 파일이 있는 디렉터리를 기준으로 템플릿 파일의 경로와 파일 이름을 지정합니다.

    source 가 설정되지 않은 경우, target 에 지정된 이름의 파일은 다른 방법으로 생성된 것으로 간주됩니다. 이는 예를 들어, 버전 관리 시스템에서 데이터를 체크아웃한 후 프로젝트로 열어야 할 올바른 파일을 지정하는 데 유용합니다.

  • target 생성된 파일의 위치를 지정하며, 절대 경로이거나 %{TargetPath} 을 기준으로 한 상대 경로일 수 있습니다. 이 설정은 일반적으로 마법사 페이지 중 하나에서 설정됩니다.
  • openInEditor true 로 설정된 경우 해당 파일을 적절한 편집기에서 엽니다. 이 설정의 기본값은 입니다. false
  • openAsProject false 이 설정이 로 설정된 경우, 프로젝트 파일을 에서 엽니다. 이 설정의 기본값은 입니다. Qt Creator true
  • 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.