Qt Widgets
この Qt Widgets Module は、従来のデスクトップスタイルのユーザーインターフェースを作成するための一連のUI要素を提供します。ウィジェットの使用に関する詳細については、「ユーザーインターフェースの概要」を参照してください。
ウィジェット
ウィジェットは、Qt でユーザーインターフェースを作成するための主要な要素です。ウィジェットは、データやステータス情報を表示したり、ユーザー入力を受け付けたり、グループ化すべき他のウィジェットのためのコンテナを提供したりすることができます。親ウィジェットに埋め込まれていないウィジェットは、ウィンドウと呼ばれます。

QWidget クラスは、画面への描画やユーザー入力イベントの処理を行うための基本的な機能を提供します。Qtが提供するすべてのUI要素は、QWidget のサブクラスであるか、QWidget のサブクラスと組み合わせて使用されます。カスタムウィジェットを作成するには、QWidget または適切なサブクラスを継承し、仮想イベントハンドラを再実装します。
スタイル
スタイルはウィジェットに代わって描画を行い、GUI のルックアンドフィールをカプセル化します。Qt の組み込みウィジェットは、QStyle クラスを使用して描画のほぼすべてを行い、それによって、対応するネイティブウィジェットと全く同じ外観になるようにしています。
|
|
|
Qt スタイルシートは、CSS のようなルールを使用してウィジェットの外観をカスタマイズします。「Qt Widgets のスタイリング手法」では、スタイル、StyleKit、スタイルシートのそれぞれをいつ使用すべきかを説明しています。
レイアウト
レイアウトは、コンテナ内の子ウィジェットを自動的に配置するための、洗練された柔軟な手法です。各ウィジェットは、sizeHint およびsizePolicy プロパティを通じてレイアウトにサイズ要件を通知し、レイアウトはそれに応じて利用可能なスペースを割り当てます。
|
|
Qt Widgets Designer は、レイアウト内でウィジェットを対話的に作成・配置するための強力なツールです。
モデル/ビュークラス
モデル/ビューアーキテクチャは、ユーザーへのデータの表示方法を管理するクラスを提供します。リストやテーブルを使用するデータ駆動型アプリケーションは、モデル、ビュー、およびデリゲートを使用してデータとビューを分離するように構成されています。

グラフィックスビュー
Graphics View Frameworkは、多数のカスタム 2D グラフィック アイテムを管理および操作するためのものであり、ズームや回転をサポートする、アイテムを視覚化するビュー ウィジェットも備えています。

モジュールの使用
QtモジュールのC++ APIを使用するには、モジュールライブラリに対して、直接または他の依存関係を通じてリンクを行う必要があります。CMakeやqmakeなど、いくつかのビルドツールには、このための専用のサポートが備わっています。
CMake を使用したビルド
find_package() コマンドを使用して、Qt6 パッケージ内から必要なモジュールコンポーネントを指定します。
find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)詳細については、「CMake によるビルド」の概要を参照してください。
qmake を使用したビルド
qmake を使用してモジュールをビルドするように設定するには、プロジェクトの .pro ファイル内で、QT 変数の値としてモジュールを追加します。
QT += widgetsセキュリティに関する考慮事項
いくつかのQt Widgets クラスは、アプリケーションが任意のソースから提供しうるデータをデシリアライズまたは解析しますが、Qtはその出所を検証することはできません。特に以下の点に留意してください:
- QHeaderView::restoreState() バージョン管理されたバイナリ状態ブロブをデシリアライズします。
- QFileDialog::restoreState() 同様に、QHeaderView 状態ブロブを埋め込んだバイナリ状態ブロブをデシリアル化します。
- QMainWindow::restoreState() 再帰的にネストされたツールバーおよびドックウィジェットのレイアウトを記述するバイナリ状態ブロブをデシリアライズします。
- QSplitter::restoreState() スプリッターのサイズと向きを記述するバイナリ状態ブロブをデシリアライズします。
- Qt XML スタイルシートは、
url()関数を通じて、任意のローカルファイルを参照および読み込むことができます。
このような API には、アプリケーションが以前に生成し、自身で永続化したデータ(通常は `QSettings` を通じて)、あるいはその他の方法でアプリケーションが完全に制御できるデータのみを渡してください。
記事とガイド
- ウィジェットチュートリアル
- プログラミング入門Qt Widgets
- Qt Creator: チュートリアル:Qt Widgets アプリケーション
- Qt Extension for Visual Studio Code: チュートリアル:Qt Widgets アプリケーション
- モデル/ビューのチュートリアル
- のスタイリング手法Qt Widgets
サンプル
API リファレンス
モジュールの進化
「Qt Widgets 」には、Qt 6シリーズに向けて行われた、モジュールのAPIおよび機能に関する重要な変更点が記載されています。
ライセンス
Qt Widgets モジュールは、The Qt Companyから商用ライセンスの下で提供されています。また、フリーソフトウェアライセンスである「GNU Lesser General Public License(GNU Lesser General Public License)バージョン3」または「GNU General Public License(GNU General Public License)バージョン2」の下でも利用可能です。詳細については、「Qtのライセンス」を参照してください。
© 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.




