Qt Widgets Designerのコンポーネントの作成と使用
カスタムウィジェットプラグインの作成
Qt Widgets Designer用のカスタムウィジェットプラグインを実装する場合、QDesignerCustomWidgetInterface をサブクラス化して、カスタムウィジェットをQt Widgets Designerに公開する必要があります。1つのカスタムウィジェットプラグインは、別のライブラリとして構築されます。複数のカスタムウィジェットプラグインを同じライブラリに含める場合は、さらにQDesignerCustomWidgetCollectionInterface をサブクラス化する必要があります。
Qt Widgets Designerのワークスペース内で期待される動作と機能をカスタムウィジェットプラグインに提供するには、関連する拡張クラスをサブクラス化します:
QDesignerContainerExtension クラスを使用すると、カスタム・マルチページ・コンテナにページを追加できます。QDesignerTaskMenuExtension クラスを使用すると、Qt Widgets Designer のタスクメニューにカスタムメニュー項目を追加できます。QDesignerMemberSheetExtension クラスを使用すると、Qt Widgets Designer のシグナルとスロットの編集モードを使用して接続を構成するときに表示されるウィジェットのメンバ関数を操作できます。最後に、QDesignerPropertySheetExtension クラスでは、Qt Widgets Designer のプロパティ・エディタで表示されるウィジェットのプロパティを操作できます。
Qt Widgets Designerでは、拡張機能は必要になるまで作成されません。そのため、拡張機能を実装する場合は、QExtensionFactory をサブクラス化する必要があります。つまり、拡張機能のインスタンスを作成できるクラスを作成する必要があります。さらに、Qt Widgets Designer の拡張機能マネージャにファクトリを登録させる必要があります。拡張機能マネージャは、必要に応じて拡張機能の構築を制御し、QDesignerFormEditorInterface とQExtensionManager を通してアクセスできます。
拡張機能を使用してカスタムウィジェットプラグインを作成する完全な例については、タスクメニューエクステンションまたはコンテナエクステンションの例を参照してください。
Qt ウィジェット・デザイナー・コンポーネントへのアクセスの取得
このセクションで説明するクラスの目的は、Qt Widgets Designerのコンポーネント、マネージャ、およびワークスペースへのアクセスを提供することです。
Qt Widgets Designerはいくつかのコンポーネントで構成されています。アクションエディタ、プロパティエディタ、ウィジェットボックス、オブジェクトインスペクタがあり、ワークスペースで表示することができます。
Qt Widgets Designerには、シーンの裏で動作するオブジェクトもあります。このオブジェクトには、Qt Widgets Designerのすべてのコンポーネントを首尾一貫したアプリケーションに統合するロジックが含まれています。このオブジェクトには、QDesignerFormEditorInterface を使用してアクセスし、Qt Widgets Designer のコンポーネントのインターフェイスを取得できます:
- QDesignerActionEditorInterface
- QDesignerObjectInspectorInterface
- QDesignerPropertyEditorInterface
- QDesignerWidgetBoxInterface
さらに、QDesignerFormEditorInterface を使用して、Qt Widgets Designer の拡張マネージャ (QExtensionManager) とフォームウィンドウマネージャ (QDesignerFormWindowManagerInterface) のインタフェースを取得できます。拡張機能マネージャは必要に応じて拡張機能の構築を制御し、フォームウィンドウマネージャは Qt Widgets Designer のワークスペースに表示されるフォームウィンドウを制御します。
Qt Widgets Designerのフォームウィンドウマネージャ(QDesignerFormWindowManagerInterface)へのインターフェイスを取得すると、Qt Widgets Designerのワークスペースに現在表示されているすべてのフォームウィンドウにもアクセスできるようになります:QDesignerFormWindowInterface クラスは、フォーム・ウィンドウのクエリと操作を可能にし、フォーム・ウィンドウのカーソルへのインタフェースを提供します。QDesignerFormWindowCursorInterface は、フォーム・ウィンドウのウィジェットの選択をクエリして修正し、さらにフォームのすべてのウィジェットのプロパティを修正できる便利なクラスです。
実行時のユーザーインターフェースの作成
QtDesigner
モジュールにはQFormBuilder クラスがあり、Qt Widgets Designer で作成した UI ファイルを元に、実行時にユーザーインターフェースを動的に作成する仕組みを提供しています。このクラスは通常、Qt Widgets Designerを組み込んだカスタムコンポーネントやアプリケーションで使用されます。実行時にユーザー・インターフェースを動的に生成する必要があるスタンドアロン・アプリケーションは、QtUiTools モジュールにあるQUiLoader クラスを使用します。
QUiLoader を使用した完全な例については、Calculator Builder の例を参照してください。
Qt Widgets Designer ManualおよびQt UI Toolsも参照して ください。
本書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。