이 페이지에서

사용자 지정 마법사

대규모 애플리케이션 또는 여러 애플리케이션을 작업하는 팀이 있는 경우 팀원들이 프로젝트와 파일을 만드는 방식을 표준화하고 싶을 수 있습니다.

사용자 지정 마법사를 JSON 형식으로 만들 수 있습니다. 이러한 마법사는 wizard.json 이라는 JSON 구성 파일과 필요한 모든 템플릿 파일이 있는 마법사 템플릿 디렉터리에 저장됩니다. 구성 파일에는 마법사에 대한 정보, 사용할 수 있는 변수, 마법사 페이지 및 파일 생성을 위한 생성기를 지정하는 섹션이 있습니다.

사용자 지정 마법사를 만들려면 템플릿 디렉터리를 로컬 사용자의 설정 디렉터리에 있는 templates/wizards/ 디렉터리에 새 이름으로 복사합니다. 그런 다음 wizard.json 파일에서 마법사 ID를 변경합니다.

설정 디렉터리에 템플릿의 하위 디렉터리를 만들 수 있습니다. Qt Creator 에서는 표준 마법사를 유형별로 하위 디렉터리로 구성하지만 원하는 디렉터리에 마법사 디렉터리를 추가할 수 있습니다. 폴더 계층 구조는 Qt Creator 에서 마법사를 표시하는 순서에 영향을 주지 않습니다.

다른 사용자와 마법사를 공유하려면 마법사 디렉터리의 아카이브를 만들고 수신자에게 Qt Creator 에서 마법사를 검색하는 디렉토리 중 하나로 압축을 풀도록 지시할 수 있습니다.

Qt CreatorNew ProjectNew 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에서: %APPDATA%\QtProject\qtcreator\templates\wizards
    • Linux 및 macOS에서: $HOME/.config/QtProject/qtcreator/templates/wizards

마법사 개발을 위한 팁

일부 헬퍼 작업에 키보드 단축키를 지정하고 자세한 설명 출력을 사용 설정합니다.

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

Qt Creator 에는 마법사 개발 프로세스를 개선할 수 있는 몇 가지 작업이 있습니다. 이러한 작업에는 기본적으로 키보드 단축키가 없으므로 트리거할 수 없습니다. 키보드 단축키를 활성화하려면 환경설정 > Environment > Keyboard > Wizard 에서 키보드 단축키를 지정하세요.

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

작업 ID설명
Inspect이 작업을 트리거하면 작업이 트리거된 시점의 마법사에 정의된 모든 필드 및 변수가 나열된 창이 열립니다. 이 작업을 활성화할 때마다 모달이 아닌 새 창이 열리므로 예를 들어 마법사의 여러 페이지에서 상태를 비교할 수 있습니다.
Factory.Reset이 작업을 트리거하면 Qt Creator 이 모든 마법사 팩토리를 잊어버리므로 예를 들어 File > New Project 을 열 때 모든 마법사 정의가 다시 로드됩니다. 이렇게 하면 마법사 정의에 대한 변경 사항을 표시하기 위해 Qt Creator 을 다시 시작하지 않아도 됩니다.

자세한 출력

마법사 개발의 경우 -customwizard-verbose 인수를 사용하여 Qt Creator 을 시작하여 Qt Creatorwizard.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 바이너리와 함께 빌드의 일부로 배포할 수 있도록 합니다.

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 로 설정됩니다.
      • 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를 지정하는 정수 값입니다. 설정하지 않으면 자동으로 할당됩니다.
      • 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 를 사용하면 생성기를 추가로 구성할 수 있습니다.

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

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

  • WizardDirwizard.json 파일의 절대 경로입니다.
  • Features Qt Creator 에 구성된 키트를 통해 사용할 수 있는 모든 기능을 나열합니다.
  • Plugins Qt Creator 의 현재 인스턴스에서 실행 중인 모든 플러그인 목록이 있습니다.
  • Platform File > New Project 또는 New File 대화 상자에서 선택한 플랫폼이 있습니다. 이 값은 비어 있을 수 있습니다.

다음 정보는 사용자가 Projects 보기에서 노드의 컨텍스트 메뉴를 통해 마법사를 트리거하는 경우에만 사용할 수 있습니다:

  • InitialPath 선택한 노드의 경로와 함께
  • ProjectExplorer.Profile.Ids 선택한 노드의 프로젝트에 대해 구성된 키트 목록이 있습니다.

사용 가능한 페이지

wizard.json 파일의 pages 섹션에서 미리 정의된 페이지를 지정하여 마법사에 추가할 수 있습니다.

필드 페이지

필드 페이지는 typeIdField 을 가지며 위젯이 있습니다. 위젯 정의에 대한 자세한 내용은 사용 가능한 위젯을 참조하세요.

"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"
                    }
            },
            ...
],

파일 페이지

파일 페이지에는 typeIdFile 이 있습니다. 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\} 가 모두 확장됨).
    • conditiontrue 또는 false 로 평가되어야 하며 목록에서 기능을 할인하는 데 사용할 수 있습니다.
  • preferredFeatures 와 같은 형식의 목록으로 requiredFeatures. preferredFeatures 에 나열된 모든 기능과 일치하는 모든 키트( requiredFeatures 외에)가 이 페이지에서 미리 선택됩니다.
{
    "trDisplayName": "Kit Selection",
    "trShortTitle": "Kits",
    "typeId": "Kits",
    "data": { "projectFilePath": "%{ProFileName}" }
},

이 페이지에서는 %\{Platform\} 을 평가하여 File > New Project 또는 New File 에서 선택한 플랫폼을 설정합니다.

참고: 이 페이지에서는 하위 프로젝트가 상위 프로젝트에서 이 정보를 파생하므로 필요하지 않은 경우 skipForSubprojectstrue 으로 설정하여 페이지를 표시하지 않습니다.

프로젝트

프로젝트 페이지에는 typeIdProject 이 있습니다. 생성된 페이지에 표시되는 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 은 상위 프로젝트의 빌드 시스템으로 설정됩니다.

요약

요약 페이지에는 typeIdSummary 이 있습니다. 여기에는 데이터가 없거나 빈 개체가 있습니다.

{
    "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 실행할 명령과 함께
    • arguments 에 전달할 인수를 command.
    • timeOutFactor 오래 실행되는 명령에 대한 기본 시간 초과를 확장합니다.
    • enabled 이 작업을 실제로 실행할지 여부를 결정하기 위해 평가됩니다.

VcsConfiguration

VcsConfiguration 페이지는 사용자에게 버전 관리 시스템을 구성하도록 요청하고 구성에 성공한 경우에만 Next 버튼을 활성화합니다.

이 페이지의 data 섹션은 vcsId 키가 있는 개체를 사용합니다. 이 설정은 구성할 버전 관리 시스템을 정의합니다.

사용 가능한 위젯

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

  • 확인란
  • 콤보 상자
  • 레이블
  • 줄 편집
  • 경로 선택기
  • 스페이서
  • 텍스트 편집

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

각 위젯에 대해 다음 설정을 지정합니다:

  • name 위젯 이름을 지정합니다. 이 이름은 값에 다시 액세스할 때 변수 이름으로 사용됩니다.
  • trDisplayName UI에 표시되는 레이블 텍스트를 지정합니다( spantrue 이 아닌 경우).
  • type 위젯의 유형을 지정합니다: CheckBox, ComboBox, Label, LineEdit, PathChooser, Spacer, TextEdit 입니다.
  • trToolTip 마우스로 필드를 가리킬 때 표시할 툴팁을 지정합니다.
  • isComplete 는 모든 필드에 대해 평가되어 마법사의 Next 버튼을 사용할 수 있는지 여부를 결정합니다. 이 작업을 수행하려면 모든 필드의 isCompletetrue 로 평가되어야 합니다. 이 설정의 기본값은 true 입니다.
  • trIncompleteMessage 필드의 isCompletefalse 로 평가될 때 표시됩니다.
  • 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 객체의 경우 trKeyvalue 쌍을 정의하는데, 여기서 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.",
    }
},
  • wordWraptrue 으로 설정하면 단어 줄 바꿈이 활성화됩니다. 기본적으로 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\} (또는 다른 위치)로 복사할 파일 하나를 정의합니다.

각 파일 객체는 다음과 같은 설정을 취할 수 있습니다:

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

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

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