このページでは

カスタムウィジェットプラグイン用のコンポーネントの作成と使用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 のプロパティエディタに表示されるウィジェットのプロパティを操作できます。

<span translate=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 xml-ph-0000@deepl.internal は、いくつかのコンポーネントで構成されています。ワークスペースには、アクションエディタ、プロパティエディタ、ウィジェットボックス、オブジェクトインスペクタが表示されます。

<span translate=Qt Widgets Designer エディタの UI を示すスクリーンショット" src="images/qtdesignerscreenshot.png" title="Qt Widgets Designer エディタの UI を示すスクリーンショット"/>

Qt Widgets Designer また、Qt Widgets Designer にはバックグラウンドで動作するオブジェクトがあり、これには のすべてのコンポーネントを統合して一貫性のあるアプリケーションとして機能させるロジックが含まれています。QDesignerFormEditorInterface を使用することでこのオブジェクトにアクセスし、Qt Widgets Designer のコンポーネントへのインターフェースを取得できます:

さらに、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 マニュアル 』 および Qt UI Toolsを参照してください。

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