ユーザーインターフェース
Qtフレームワークの主なユーザーインターフェース技術は以下の通りです。 Qt Quick および Qt Widgetsです。Qt Quick インターフェースは流動的で動的であり、タッチインターフェースに最適です。Qt Widgets は、複雑なデスクトップアプリケーションを作成するためのものです。ターゲットプラットフォームのネイティブなルックアンドフィールを持つQt Quick およびQt Widgets インターフェースを作成できます。
動的で滑らかなユーザーインターフェースを作成するにはQt Quick
Qt Quick は、動的で滑らかなユーザーインターフェースを作成するためのものです。「Qt Quick Controls」モジュールは、ボタン、ダイアログ、メニューなどのQMLタイプを提供します。宣言型言語であるQMLを使用してUIを構築し、JavaScriptを使用してロジックを実装できます。
以下のリストには、関連する概要が記載されています:
- Qt Quick Controls
- Qt Quick アプリケーションの入門
- QMLの第一歩
- QML用語集
- ビジュアルタイプ
- ポジショナーとレイアウト
- ユーザー入力の処理
- テキストの表示
- アニメーション
- QMLへのJavaScriptの統合
- Qt Quick 3D- 3Dグラフィックス用アドオン
- Shader ToolsQt XML-ph-0000@deepl.internal - シェーダーエフェクト用アドオン
Qt Widgets ユーザーインターフェース
Qt Widgets は、デスクトップ環境で一般的に使用されるユーザーインターフェース要素です。これらのウィジェットは基盤となるプラットフォームと良好に統合され、Windows、Linux、macOS上でネイティブなルックアンドフィールを提供します。これらのウィジェットは成熟しており、機能が豊富なユーザーインターフェース要素であり、主に従来のユーザーインターフェースに適しています。これとは対照的に Qt Quickとは異なり、これらのウィジェットは大規模なデスクトップアプリケーションの作成を目的としており、滑らかなインターフェースを備えたタッチ中心のアプリケーションの作成にはあまり適していません。
以下のリストには、Qt Widgets に関する概要が掲載されています:
- ウィジェットクラス
- アニメーションフレームワーク
- アプリケーションのメインウィンドウ
- ダイアログウィンドウ
- ドラッグ&ドロップ
- ウィジェットおよびグラフィックスビューでのジェスチャー
- レイアウト管理
- ウィンドウおよびダイアログウィジェット
- スタイルとスタイル対応ウィジェット
UI テクノロジーの比較
以下の表は、Qt Quick とQt Widgets を比較し、それぞれの長所、制限、および理想的な使用例をまとめたものです:
| 機能 | Qt Quick およびQt Quick のコントロール | Qt Widgets | 説明 |
|---|---|---|---|
| 主な言語 | QML および JavaScript | C++ | Qt Quick は宣言型です。Qt Widgets は命令型で、古典的なC++です。 |
| ネイティブなルック・アンド・フィール | はい(Qt Quick のコントロールスタイルを介して)。 | はい(ネイティブのデスクトップウィジェット)。 | どちらも、ターゲットプラットフォーム上でネイティブなルックアンドフィールをサポートしています。 |
| カスタムスタイリング | はい(カスタマイズ可能なスタイル、カスタム QML コンポーネント)。 | はい(Qt スタイルシート)。 | どちらのフレームワークも、さまざまな仕組みを通じて広範なカスタムスタイリングが可能です。 |
| 滑らかなアニメーションとトランジション | はい(GPU アクセラレーションによるアニメーションが組み込まれています)。 | 限定的(QPropertyAnimation によってサポートされていますが、滑らかな UI アニメーション用に設計されていません)。 | Qt Quick は、アニメーションを多用した最新の UI 向けに設計されています。Qt Widgets にはその機能はありません。 |
| タッチ操作のサポート | はい(タッチおよびジェスチャー向けに設計されています)。 | 限定的(タッチイベントは存在しますが、Qt Widgets はマウスとキーボード入力を前提としています)。 | Qt Quick はマルチモーダル入力をよりうまく処理します。Qt Widgets では、優れたタッチ UX を実現するために、より多くの手作業が必要となります。 |
| 業界標準のウィジェット | はい(一般的なデスクトップコントロールが提供されており、カスタムコンポーネントで必要なウィジェットを自由に実装可能)。 | はい(成熟した豊富な既製のデスクトップウィジェットが用意されています)。 | Qt Quick あらゆる種類のデスクトップコントロールを実装可能ですが、Qt Widgets には、より幅広い従来のウィジェットが標準で含まれています。 |
| モデル/ビュープログラミング | はい(ListView やTableView などのデリゲートベースのビューによる柔軟なモデルサポート)。 | はい(QTableView 、QListView 、QTreeView を含む、包括的な従来の MVC ビューのセット)。 | どちらの技術も、堅牢なモデル/ビュープログラミングをサポートしています。Qt Quick はデリゲートを使用してデータとプレゼンテーションを明確に分離し、Qt Widgets は、成熟した既製のモデル/ビュークラスを多数提供しています。 |
| UIのプロトタイピングの迅速化 | はい(QML では非常に高速な反復開発が可能です)。 | はい(従来の UI では高速、特に Qt Widgets Designer)。 | Qt Quick は、迅速なビジュアルプロトタイピングに特に適しており、Qt Widgets では、Qt Widgets Designer を使用して、従来のデスクトップインターフェースを素早く組み立てることができます。 |
| ハードウェアアクセラレーションによるグラフィックス | はい(Qt Quick シーングラフによる GPU アクセラレーション)。 | 一部対応(ウィジェットはソフトウェアでレンダリングされます。OpenGL ウィジェットも可能ですが、独立しています)。 | Qt Quick のみが、シーン全体の GPU アクセラレーションを標準で提供しています。詳細については、「グラフィックス」を参照してください。 |
| Graphical Effects | はい(シェーダーベースのぼかし、グロー、ドロップシャドウ、カラーエフェクトなど)。 | 限定的( Qt GUI のみ)。 | Qt Quick は、GPU による豊富な視覚効果を提供します。Qt Widgets は、単純な CPU エフェクトのみを提供します。 |
| リッチテキスト処理。 | はい(Qt のリッチテキストドキュメントクラスは、Qt Quick およびQt Quick Controls のTextArea で利用できますが、C++ による実装が必要になる場合があります)。 | はい(QTextDocument 、QTextEdit 、および関連クラスを通じて完全にサポートされています)。 | どちらの技術も、複雑なテキストエディタの構築に使用できます。Qt Quick はQTextDocument を介してQtのリッチテキストエンジンと統合される一方、Qt Widgets はテキスト処理のための成熟した、すぐに使えるクラスのセットを提供します。 |
注: Qt Widgets のUIでは、QMLビューを表示することができます 。詳細については、「Qt Quick ウィジェット」を参照してください。
関連トピック
以下のページには、ユーザーインターフェースの設計および開発に関する詳細情報が記載されています。
- デザインツール- デザイナーおよび開発者向けのユーザーインターフェースツールの概要
- グラフィックス- グラフィックスの概要
- モデル/ビュープログラミング
- 高DPI
© 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.