コンポーネントの作成と使用Qt Widgets Designer
カスタムウィジェットプラグインの作成
Qt Widgets Designer 用のカスタムウィジェットプラグインを実装する場合、カスタムウィジェットをQt Widgets Designer に公開するためにQDesignerCustomWidgetInterface をサブクラス化する必要があります。1つのカスタムウィジェットプラグインは、別のライブラリとして構築されます。複数のカスタムウィジェットプラグインを同じライブラリに含める場合は、さらにQDesignerCustomWidgetCollectionInterface をサブクラス化する必要があります。
Qt Widgets Designer のワークスペース内で期待される動作と機能をカスタムウィジェット・プラグインに提供 するには、関連する拡張クラスをサブクラス化します:
QDesignerContainerExtension クラスを使用すると、カスタム・マルチページ・コンテナにページを追加できます。QDesignerTaskMenuExtension クラスでは、Qt Widgets Designer のタスクメニューにカスタムメニューエントリを追加できます。QDesignerMemberSheetExtension クラスでは、Qt Widgets Designer'のシグナルとスロットの編集モードを使用して接続を構成するときに表示されるウィジェットのメンバ関数を操作することができます。最後に、QDesignerPropertySheetExtension クラスは、Qt Widgets Designer'のプロパティ・エディタで表示されるウィジェットのプロパティを操作できます。
Qt Widgets Designer コンポーネント間の関係を示す図" src="images/qtdesignerextensions.png" title="Qt Widgets Designer コンポーネント間の関係を示す図"/>
Qt Widgets Designer では、拡張機能は必要になるまで作成されません。そのため、拡張機能を実装する際には、QExtensionFactory をサブクラス化する必要があります。つまり、拡張機能のインスタンスを作成できるクラスを作成する必要があります。さらに、Qt Widgets Designer のエクステンションマネージャーに、あなたのファクトリーを登録させなければなりません。エクステンションマネージャーは、エクステンションが必要になったときに、エクステンションの構築をコントロールします。エクステンションマネージャーには、QDesignerFormEditorInterface とQExtensionManager からアクセスできます。
拡張機能でカスタムウィジェットプラグインを作成する完全な例については、タスクメニューエクステンションまたはコンテナエクステンションの例を参照してください。
Qt Widgets Designer コンポーネントへのアクセスの取得
このセクションで説明するクラスの目的は、Qt Widgets Designer のコンポーネント、マネージャー、ワークスペースへのアクセスを提供することであり、直接インスタンス化することは意図していません。
Qt Widgets Designer はいくつかのコンポーネントで構成されています。アクションエディター、プロパティエディター、ウィジェットボックス、オブジェクトインスペクターがあり、ワークスペースで見ることができます。
Qt Widgets Designer エディタの UI を示すスクリーンショット。" src="images/qtdesignerscreenshot.png" title="Qt Widgets Designer エディタの UI を示すスクリーンショット。"/>
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 クラスを使用します。
© 2026 The Qt Company Ltd. 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.