このページでは

カスタムウィジェットの使用Qt Widgets Designer

Qt Widgets Designer は、拡張可能なプラグイン機構を通じてカスタムウィジェットを表示でき、これにより、ユーザーやサードパーティによってデザイン可能なウィジェットの範囲を拡張することが可能です。あるいは、同様のAPIを提供するウィジェットクラスのプレースホルダーとして、既存のウィジェットを使用することも可能です。

カスタムウィジェットの取り扱い

Qt Widgets Designer はすべての標準的なQt Widgetsをサポートしていますが、いくつかの理由により、一部の特殊なウィジェットが標準では利用できない場合があります:

  • ユーザーインターフェースの設計時点では、カスタムウィジェットが利用できない場合があります。
  • カスタムウィジェットがプラットフォーム固有のものであり、設計者がエンドユーザーとは異なるプラットフォーム上でユーザーインターフェースを開発している場合がある。
  • カスタムウィジェットのソースコードが入手できない、あるいは技術的ではない理由により、ユーザーインターフェース設計者がそのウィジェットを使用できない場合があります。

上記のような状況であっても、アプリケーションでカスタムウィジェットを使用することを目的としてフォームを設計することは可能です。これを実現するために、Qt Widgets Designer のウィジェット昇格機能を利用できます。

それ以外の場合、つまりカスタムウィジェットのソースコードが利用可能な場合は、Qt Widgets Designer で使用できるようにカスタムウィジェットを調整することができます。

ウィジェットのプロモーション

「プロモートされたウィジェット」ウィンドウのスクリーンショット。このウィンドウには、基底クラス、プロモートされたクラス名、およびヘッダーファイルを指定してカスタムウィジェットクラスを追加するためのオプションが表示されています。

フォームを設計する必要があるものの、特定のカスタムウィジェットがデザイナーに利用できない場合、欠落しているウィジェットを表現するために類似のウィジェットで代用することができます。例えば、カスタムプッシュボタンクラス `MyPushButton` のインスタンスを、`QPushButton ` のインスタンスで表現し、これらを `MyPushButton ` にプロモーションすることで、uic がこの欠落しているクラスに対して適切なコードを生成するようにすることができます。

プレースホルダーとして使用するウィジェットを選択する際は、欠落しているウィジェットの API と標準の Qt Widgets の API を比較すると役立ちます。標準クラスをサブクラス化した特殊なウィジェットの場合、プレースホルダーとして最適な選択肢は、そのカスタムウィジェットの基底クラスです。例えば、QSlider は、QSlider の特殊なサブクラスに対して使用されることがあります。

標準のQt Widgetsと共通のAPIを持たない特化ウィジェットの場合、Qt Widgets Designer で使用できるようカスタムウィジェットを適応させることを検討する価値があります。これが不可能な場合は、QWidget がすべてのウィジェットにとっての最小公倍数であるため、プレースホルダーウィジェットとして最適な選択肢となります。

プレースホルダーを追加するには、適切な基底クラスのオブジェクトを選択し、フォームのコンテキストメニューから[Promote to ...]を選択します。ダイアログの下部にクラス名とヘッダーファイルを入力した後、[Add] を選択します。これにより、プレースホルダークラスが基底クラスとともに上部のリストに表示されます。 「昇格」ボタンをクリックしてこの選択を確定します。

これで、基底クラスのオブジェクト上でフォームのコンテキストメニューを開くと、[昇格先]サブメニューにプレースホルダークラスが表示され、オブジェクトをそのクラスに簡単に昇格させることができます。

昇格されたウィジェットは、フォームのコンテキストメニューから[基底クラスへ降格]を選択することで、基底クラスに戻すことができます。

ユーザー定義のカスタムウィジェット

カスタムウィジェットは、Qt Widgets Designer で使用するように適応させることができ、これにより、デザイナーはプレースホルダーウィジェットではなく、アプリケーションで実際に使用されるウィジェットを使用してユーザーインターフェースを構成することができます。カスタムウィジェットプラグインの作成プロセスについては、本マニュアルの「 Qt Widgets Designer 用のカスタムウィジェットの作成」の章で説明しています。

この方法で作成したプラグインを使用するには、そのプラグインがQt Widgets Designer がプラグインを検索するパス上に配置されていることを確認する必要があります。通常、$QTDIR/plugins/designer に保存されたプラグインは、Qt Widgets Designer の起動時に読み込まれます。プラグインのビルドおよびインストールに関する詳細情報は、こちらを参照してください。また、プラグインの作成に関する情報については、『Plugins HOWTO』ドキュメントも参照できます。

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