スタイルとスタイル対応ウィジェット
スタイル(QStyle を継承するクラス)は、ウィジェットに代わって描画を行い、GUI のルックアンドフィールをカプセル化します。QStyle は抽象基底クラスです。Qt の組み込みウィジェットは、その描画のほぼすべてにおいてこのクラスを使用しているため、対応するネイティブウィジェットとまったく同じ外観になります。
Qt には、いくつかの組み込みスタイルが用意されています。windows およびfusion スタイルは、Qt Widgets モジュールの一部です。Windowsのwindows11 やmacOSのmacos といったプラットフォーム固有のスタイルは、それぞれのプラットフォームでのみ利用可能なプラグインです。QStyleFactory は、実行時に利用可能なスタイルを一覧表示し、名前を指定してそれらを作成します。QApplication::setStyle()は、あるスタイルをアプリケーションのスタイルに設定し、ユーザーは-style コマンドラインオプションを使用してスタイルを選択できます。
QStyle の実装は、本番アプリケーションに独自の外観を与える方法です。StyleKitは、デザインのQML記述を読み込むQStyleKitStyle という実装を提供しています。スタイル、StyleKit、またはスタイルシートのいずれを使用すべきかについては、『Qt Widgets のスタイリング手法』を参照してください。
スタイルのカスタマイズ
既存のスタイルの特定の側面を変更するには、QProxyStyle を継承し、変更したい要素を描画または測定する仮想関数を再実装します。プロキシスタイルは別のスタイルをラップし、再実装していないすべての処理をそのスタイルに委譲します。
ベーススタイルを明示的に指定することも、指定しないままにすることもできます。ベーススタイルを明示的に指定すると、完全な制御が可能になり、特定のスタイルの挙動に依存するカスタマイズに適しています。ベーススタイルを指定しない場合、プロキシはアプリケーションスタイルをラップするため、プラットフォームが提供する機能の上にカスタマイズが適用されます。
The QStyle class documentation スピンボックスの矢印を置き換えるプロキシスタイルを示しています。
スタイルの実装
QCommonStyle は、スタイルを完全に実装するための便利な基盤を提供します。これは、サブ要素のレイアウトやサイズの計算など、Qtのすべてのスタイルに共通する挙動を実装し、描画処理はユーザーに委ねます。QCommonStyle を継承し、描画関数に加え、共通のデフォルト値とは異なるピクセルメトリック、サブ要素の矩形、およびスタイルヒントを再実装します。Qtの組み込みスタイルはパブリックAPIの一部ではなく、基底クラスとして使用することはできません。代わりに、QProxyStyle を使用してそれらをラップしてください。
完全なスタイルの実装は複雑な作業です。以下のページでは、スタイル API の仕組み、ペイントイベントからスタイルに至るまでのウィジェットの描画プロセスの追跡、および各ウィジェットが使用する要素、状態、オプションについて解説しています:
- 「スタイルによるウィジェットの描画方法」では、スタイル要素、サブ要素、ピクセルメトリック、スタイルヒント、スタイルオプション、QStyle 関数、およびパレットについて解説しています。
- 「スタイル対応ウィジェットの作成」では、カスタムウィジェットが現在のスタイルに基づいて描画され、あらゆるスタイルで正しく表示される仕組みについて解説します。
- 「チェックボックスのスタイル設定:実践ガイド」では、QCheckBox のpaintイベントからQCommonStyle を経て、最終的にはカスタムインジケーターに至るまでの流れを追います。
- 「ウィジェットのスタイルリファレンス」では、各ウィジェットについて、描画するスタイル要素、設定する状態フラグ、およびスタイルオプションのメンバを一覧表示しています。
ウィジェットが描画する要素はどのスタイルでも同じであるため、スタイル対応のウィジェットやデリゲートを作成する際にも、このリファレンスを利用できます。
ウィジェットのスタイリング用クラス
これらのクラスを使用して、アプリケーションの外観をカスタマイズします。
RGB、HSV、または CMYK 値に基づく色 | |
色空間の抽象化 | |
色空間間の変換 | |
GUIの共通的なルック・アンド・フィールをカプセル化 | |
任意の形状のマウスカーソル | |
テキストの描画に使用されるフォントに対するクエリを指定する | |
基盤となるウィンドウシステムで利用可能なフォントに関する情報 | |
フォントに関する一般的な情報 | |
QGraphicsAnchorLayout 内の 2 つの項目間のアンカーを表す | |
Graphics View内でウィジェットを互いにアンカーできるレイアウト | |
各ウィジェットの状態ごとのカラーグループを含む | |
GUIのルックアンドフィールをカプセル化する抽象基底クラス | |
QStyleオブジェクトを作成します | |
基本的なデータ型以上の情報を返すスタイルヒント | |
QRegionを返すスタイルヒント | |
QVariantを返すスタイルヒント | |
Qt Labs StyleKit スタイルを以下に適用するQt Widgets | |
QStyle関数で使用されるパラメータを格納する | |
ウィジェット内に QStyle 要素を描画するための利便性クラス |
QStyle 、QProxyStyle 、QCommonStyle 、QStylePainter 、QStyleOption 、および「Qt Widgets のスタイル設定手法」も参照してください 。
© 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.