このページでは

カスタムウィザード

大規模なアプリケーションや複数のアプリケーションを開発するチームがある場合、チームメンバーがプロジェクトやファイルを作成する方法を標準化したいと思うかもしれません。

JSON形式でカスタムウィザードを作成できます。ウィザードは、wizard.json という JSON 設定ファイルと必要なテンプレートファイルを持つウィザードテンプレートディレクトリに格納されます。設定ファイルには、ウィザードに関する情報、使用できる変数、ウィザード・ページ、ファイル作成用のジェネレータを指定するセクションがあります。

カスタマイズされたウィザードを作成するには、テンプレート・ディレクトリをローカル・ユーザの設定ディレクトリのtemplates/wizards/ ディレクトリに新しい名前でコピーします。次に、wizard.json ファイル内のウィザード ID を変更します。

設定ディレクトリにテンプレート用のサブディレクトリを作成することができます。Qt Creator 、標準ウィザードを種類別にサブディレクトリに整理しますが、ウィザードディレクトリを好きなディレクトリに追加することができます。フォルダ階層は、Qt Creator がウィザードを表示する順序には影響しません。

ウィザードを他のユーザと共有するには、ウィザード・ディレクトリのアーカイブを作成し、Qt Creator がウィザードを検索するディレクトリのいずれかに解凍するように受信者に指示することができます。

Qt Creator は、New 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 には、ウィザードの開発プロセスを改善できるアクションがいくつかあります。これらのアクションにはデフォルトでキーボードショートカットがないため、それらをトリガすることはできません。これらを有効にするには、Preferences>Environment >Keyboard >Wizard でキーボード・ショートカットを割り当てます。

以下のアクションは、ウィザードの開発に役立ちます:

アクション ID説明
Inspectこのアクションをトリガーすると、アクションがトリガーされた時点でウィザードに定義されているすべてのフィールドと変数をリストするウィンドウが開きます。このアクションを起動するたびに新しい非モーダルウィンドウが開くので、例えばウィザードの異なるページで状態を比較することができます。
Factory.Resetこのアクションをトリガーすると、Qt Creator はすべてのウィザードファクトリーを忘れ、たとえばFile >New Project を開くときにすべてのウィザード定義を再読み込みします。こうすることで、ウィザード定義の変更を表示するためにQt Creator を再起動する必要がなくなります。

詳細出力

ウィザードの開発では、Qt Creatorwizard.json ファイルを検出して解析したことを確認するために、-customwizard-verbose 引数を指定してQt Creator を起動することをお勧めします。冗長モードでは、ウィザードの編集中に遭遇する可能性のある最も典型的なエラーである構文エラーに関する情報が表示されます。

冗長モードでは、正しくセットアップされた各ウィザードは、以下の行に沿った出力を生成します:

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 セクションで変数キー名と値を定義することで、後で使用するためのショートカットとして新しい変数を導入することができます。

与えられた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 に設定されています。
      • 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は、typeId の前に"PE.Wizard.Page." を付けたものです。ページの詳細については、利用可能なページを参照してください。

      • trDisplayName はページのタイトルを指定します。デフォルトではページ・タイトルが使われます.
      • trShortTitle はウィザードのサイドバーで使用されるタイトルを指定します。デフォルトではページ・タイトルが使用されます。
      • trSubTitle はページのサブタイトルを指定します。デフォルトではページタイトルが使用されます。
      • index はページIDを指定する整数値です。設定しない場合は自動的に割り当てられます。
      • enabledtrue に設定するとページが表示され、false に設定すると非表示になります。これは各ウィザードの作成時に一度だけ評価されます。
      • skipForSubprojects は、ウィザードのページをスキップするために使用できます。ビルド情報の処理などに便利です。これは、各ウィザードページの作成時に一度だけ評価されます。
      • data ウィザード・ページを指定します。C++ ウィザードでは、Fields ページとSummary ページを指定します。Fields ページには、CheckBoxComboBoxLineEditPathChooserSpacer ウィジェットがあります。ウィジェットの詳細については、利用可能なウィジェットを参照してください。
    • 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 ページはtypeIdKits を持ちます。Kitsページのdata セクションには、以下の設定を持つオブジェクトがあります:

  • projectFilePath プロジェクト・ファイルへのパス
  • requiredFeatures キットがページに表示されるために必要な機能を記述する文字列またはオブジェクトのリスト。

    文字列が見つかった場合、この機能を設定する必要があります。代わりにオブジェクトを使用する場合、以下の設定がチェックされます:

    • feature文字列でなければなりません(%\{<VariableName\} がすべて展開されます)。
    • conditionは、true またはfalse と評価されなければならず、リストから機能を割り引くために使用できます。
  • preferredFeaturesrequiredFeatures と同じ形式のリストです。requiredFeatures に加えて)preferredFeatures にリストされているすべての機能に一致するキットは、このページで事前に選択されます。
{
    "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 は親プロジェクトのビルドシステムに設定されます。

サマリー

Summary ページは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 には実行するコマンドを指定します。
    • arguments commandに渡す引数を指定します。
    • timeOutFactor は、長時間実行されるコマンドのデフォルトのタイムアウトを拡張します。
    • enabled このコマンドは、このジョブを実際に実行するかどうかを決定するために評価されます。

VcsConfiguration

VcsConfigurationページは、バージョン管理システムを設定するようユーザーに要求し、設定が成功した場合にのみNext ボタンを有効にします。

このページのdata セクションは、vcsId キーを持つオブジェクトを取ります。この設定は、構成されるバージョン管理システムを定義します。

利用可能なウィジェット

Fieldページには以下のウィジェットを追加できます:

  • チェック・ボックス
  • コンボ・ボックス
  • ラベル
  • ライン編集
  • パス選択
  • スペーサー
  • テキスト編集

注: ウィザードは、以下のセクションで説明されている設定のみをサポートします。

各ウィジェットに以下の設定を指定します:

  • 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 に設定されます。
  • mandatorytrue に設定されている場合、このウィジェットは、Next ボタンが有効になるための値を持つ必要があります。デフォルトでは、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 はブール値で、最後の履歴項目を行編集のデフォルトテキストとして自動的に設定することを指定します。このキーをtrueに設定できるのは、historyId も設定されている場合のみです。

パス選択

{
    "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ウィザード用に2つの異なるジェネレータをサポートしています。

ファイルジェネレータ

File ジェネレーターは、そのdata セクションにオブジェクトのリストを期待します。各オブジェクトは、処理され、%\{TargetPath\} (または他の場所)にコピーされる1つのファイルを定義します。

各ファイル・オブジェクトは以下の設定を取ることができます:

  • source は、wizard.json ファイルがあるディレクトリからの相対パスとテンプレート・ファイルのファイル名を指定します。

    source が設定されていない場合、target で指定された名前のファイルは他の方法で生成されたものとみなされます。これは、例えばバージョン管理システムからデータをチェックアウトした後、プロジェクトとして開く正しいファイルを指定するのに便利です。

  • target 生成されたファイルの場所を指定します。%{TargetPath} からの絶対パスか相対パスで指定します。通常はウィザード・ページのいずれかで設定します。
  • openInEditor trueこの設定のデフォルトはfalse です。
  • openAsProject Qt Creator trueこの設定のデフォルトはfalse です。
  • isBinary trueこの設定のデフォルトはfalse です。
  • condition trueが返された場合、ファイルを生成します。この設定のデフォルトはtrue です。詳細は、「ウィザードで変数を使用する」を参照してください。

スキャナ・ジェネレータ

Scanner ジェネレータは%\{TargetPath\} をスキャンし、そこで見つかったすべてのファイルのリストを生成します。

Scanner ジェネレーターは、data セクションに以下の設定で1つのオブジェクトを取ります:

  • 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.