このページでは

カスタムウィザード

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

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の場合:%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 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 ファイル内の各セクションおよび設定について説明します。

この例では、sharedディレクトリ内にウィザードディレクトリを作成し、Qt Creator のビルドシステムに統合します。これにより、ビルドの一環としてQt Creator のバイナリとともにデプロイできるようになります。

C++ クラス ダイアログ

追加可能なページやウィジェット、およびそれらのサポートされているプロパティの詳細については、「利用可能なページ」および「利用可能なウィジェット」を参照してください。

JSON ベースの C++ クラスウィザードを作成するには:

  1. ウィザード開発中にフィードバックを受け取るには、-customwizard-verbose 引数を指定してQt Creator を起動します。詳細については、「詳細出力」を参照してください。
  2. ウィザード開発のヒント」に記載されているように、Inspect およびFactory.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.AutotoolsProjectCMakeProjectManager.CMakeProjectGenericProjectManager.GenericProjectPythonProjectQbs.QbsProjectQt4ProjectManager.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')}",
      • trDescriptiontrDisplayCategory 」が選択されると、右端のパネルに表示されます。

        この情報は、ウィザード内で「%\{trDescription\} 」として利用可能です。

      • trDisplayNametrDisplayCategory 」が選択されると、中央のパネルに表示されます。

        この情報は、ウィザードの「%\{trDisplayName\} 」で確認できます。「 」が選択されると、中央のパネルに表示されます。

      • trDisplayCategoryNew File 」ダイアログの「Files and Classes 」の下に表示されます。

        この情報は、ウィザードの [%\{trDisplayCategory\}] として利用できます。この情報は、[ ] ダイアログの [ ] の下に表示されます。

      • icontrDisplayCategory 」が選択されている場合、この情報は中央パネルの「trDisplayName 」の横に表示されます。wizard.json ファイルからの相対パスを指定することをお勧めしますが、絶対パスを使用することも可能です。この値を省略すると、ウィザードタイプにデフォルトのアイコンが使用されます。
      • iconText デフォルトのファイルアイコンに表示されるテキストオーバーレイを決定します。
      • iconKind アイコンにテーマを適用するかどうかを決定します。
      • image trDescription の下に表示される画像(スクリーンショットなど)へのパスを指定します。
      • featuresRequired ウィザードが依存するQt Creator の機能を指定します。必要な機能が欠けている場合、ウィザードは非表示になります。たとえば、Qt XMLのバージョンが設定されているキットがない場合、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 使用するページを指定します:FieldsFileFormKitsProjectVcsConfigurationVcsCommand 、またはSummary

        コード内で使用される完全なページIDは、typeId の先頭に"PE.Wizard.Page." を付加したものです。ページに関する詳細については、「利用可能なページ」を参照してください。

      • trDisplayName ページのタイトルを指定します。デフォルトでは、ページタイトルが使用されます。
      • trShortTitle ウィザードのサイドバーで使用されるタイトルを指定します。デフォルトでは、ページタイトルが使用されます。
      • trSubTitle ページのサブタイトルを指定します。デフォルトでは、ページタイトルが使用されます。
      • index ページ ID を指定する整数値です。設定しない場合は自動的に割り当てられます。
      • enabled true に設定するとページが表示され、 に設定すると非表示になります。これは、それぞれのウィザードの作成時に一度だけ評価されます。false
      • skipForSubprojects ウィザードのページをスキップするために使用できます。たとえば、ビルド情報の処理などに便利です。これは、それぞれのウィザードページを作成する際に一度だけ評価されます。
      • data ウィザードのページを指定します。C++ ウィザードでは、Fields ページとSummary ページを指定します。Fields ページには、CheckBoxComboBoxLineEditPathChooser 、および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ベースのウィザードに対して以下の情報を提供します:

  • 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"
},

このページは、ウィザードから取得した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 で選択されたプラットフォームを設定します。

注: サブプロジェクトはこの情報を親プロジェクトから取得するため、必要がない場合にこのページが表示されないよう、このページでは skipForSubprojectstrue に設定しています。

プロジェクト

プロジェクトページでは、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 は親プロジェクトのビルドシステムに設定されます。

概要

「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 ウィジェットのタイプを指定します:CheckBoxComboBoxLabelLineEditPathChooserSpacer 、およびTextEdit
  • trToolTip マウスカーソルをフィールド上に置いた際に表示されるツールチップを指定します。
  • isComplete ウィザードの「Next 」ボタンを有効にするかどうかを決定するために、すべてのフィールドに対して評価されます。これを有効にするには、すべてのフィールドの「isComplete 」が「true 」と評価される必要があります。この設定のデフォルト値は「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 リストタイプが無効な場合に表示するインデックスを指定します。

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.",
    }
},
  • 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 検索対象を定義します:existingDirectorydirectoryfilesaveFileexistingCommandcommand 、または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 false に設定されている場合、プロジェクトファイルを で開きます。この設定のデフォルトは です。true
  • 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.