グラフィックス
クロスプラットフォームのアプリケーションでは、Qt を使用してグラフィック要素を表示することができます。Qt は、開発者がアプリケーションコードに集中できるように、プラットフォームの基礎となるグラフィックス API を抽象化します。
Qt Rendering Hardware Interface (RHI) は、Qt アプリケーションからの 3D グラフィックスの呼び出しを、ターゲットプラットフォームで利用可能なグラフィックス API に変換します。
サポートされているグラフィックスAPIは以下の通りです:
- OpenGL (バージョン 2.1 以上)
- OpenGL ES(バージョン 2.0 以上)
- Vulkan (バージョン 1.0 以上)
- Direct3D 11(バージョン11.1以上)
- Direct3D 12(バージョン12.0以降)
- メタル(バージョン1.2以上)
アプリケーションのグラフィックスQt Quick
Qt Quick アプリケーションでは、レンダリングにシーングラフを使用します。シーングラフ・レンダラーは、効率的なグラフィックス・コールを作成し、パフォーマンスを向上させることができる。シーングラフにはアクセス可能なAPIがあり、複雑でも高速なグラフィックを柔軟に作成できます。
次のリストのページには、Qt Quick アプリケーションのレンダリングに関する詳細情報が含まれています。
- Qt Quick シーングラフ
- シーングラフとレンダリング
- Qt Quick シーングラフのデフォルトレンダラー
- QRhi ベースおよびネイティブ 3D レンダリングによるシーン グラフの拡張- アプリケーションが提供するグラフィックス コマンド (OpenGL、Vulkan、Direct3D など) をQt Quick シーン グラフに統合する方法。
レンダリングパスの選択
Qt は可能な限りターゲットプラットフォームのグラフィックス API を使用しますが、特定の API を使用して Qt のレンダリングパスを設定することも可能です。多くの場合、特定の API を選択することでパフォーマンスを向上させることができ、開発者は特定のグラフィックス API を持つプラットフォームにデプロイすることができます。QQuickWindow でレンダリングパスを設定する方法については、Qt Rendering Hardware Interface によるレンダリングのページを参照してください。
Qt Quick 3D による 3D グラフィックス
Qt Quick 3Dは、 に基づいて 3D コンテンツや 3D ユーザー インターフェイスを作成するための高レベル API を提供するアドオンです。これはQt QuickQt Quick Scene Graphを拡張し、2D アプリケーションに 3D コンテンツを実装できるようにします。Qt Quick
シェーダーエフェクト
QtShader Toolsは、頂点シェーダとフラグメントシェーダをQt Quick インタフェース用のパッケージに変換するツール、QSB を提供します。特に、ShaderEffect QML タイプとQSGMaterial サブクラスは QSB の出力を使うことができます。 Qt Quick 3Dには、3D シーンにシェーダーをインポートするための独自のフレームワークがあります。
以下のリストには、シェーダー効果に関する情報が含まれています。
- QtShader Tools
- プログラム可能なマテリアル、エフェクト、ジオメトリ、テクスチャデータ-Qt Quick 3Dのマテリアルとシェーダ
によるハイレベルグラフィックスQt GUI
Qt GUIQPainter は、QImage 、QOpenGLPaintDevice 、QWidget 、QPrinter のようなさまざまなサーフェス、またはQPaintDevice インスタンスに、ベクターグラフィックス、テキスト、画像を描画するための API を提供します。Qt Widgets ユーザーインターフェイスでは、Qt はソフトウェアレンダラを使用します。
以下のリストには、Qt GUI の高レベル描画 API に関する情報が含まれています。
を使用したローレベル・グラフィックスQt GUI
Qt GUIは、OpenGL コンテキストと Vulkan インスタンスを管理するためのクロスプラットフォームイネーブラを提供します。OpenGL、OpenGL ES、または Vulkan で直接レンダリングを実行するアプリケーションは、QOpenGLContext 、QOpenGLFunctions 、QVulkanInstance 、QVulkanFunctions 、QVulkanDeviceFunctions を使用してコンテキストやインスタンスを管理し、OpenGL および Vulkan API 関数にポータブルな方法でアクセスできます。
Qt GUIまた、Qt Quick シーングラフやQt Quick 3D レンダリングエンジンを実装するために Qt 自身が使用している、ポータブルでクロスプラットフォームな 3D レンダリングインフラストラクチャを使用してレンダリングを実行したいアプリケーションのために、QRhi やQShader などの Qt Rendering Hardware Interface (RHI) API ファミリーも提供しています。これらのクラスは、Qt Platform Abstractionクラスと同様に、当面の間、限定的な互換性を約束する「セミパブリック」 API として提供されます。しかし、QRhi クラスには完全なドキュメントが付属しています。QRhi クラスを参照してください。
この Qt GUIモジュールは、QRhi ベースのレンダリングで、QWindow や、QRhiTexture のようなオフスクリーンバッファをターゲットにすることができます。QWidget や QML (Qt Quick) をベースとしたユーザーインターフェイスでは、 ネイティブプラットフォームに支えられたQWindow で作業するのが最も便利な方法とは限りません。そのため Qt WidgetsモジュールがQRhiWidget を提供するのに対して、Qt Quick はQQuickRhiItem を提供しています。これらの基本クラスは、QWidget またはQQuickItem サブクラスの便利な作成を可能にします。これらのサブクラスのインスタンスは、ウィジェットまたはQt Quick シーンに自動的に合成されるテクスチャに、ポータブルなQRhi ベースのレンダリングを実行します。
Qt OpenGL モジュール
モジュールは Qt OpenGLモジュールは、OpenGLアクセスを必要とするアプリケーションのためのものです。このモジュールは、Qt 5 アプリケーションやQt GUI との互換性を維持するためのものです。QWidget を使用するユーザーインターフェースのために、QOpenGLWidget は OpenGL シーンを追加できるウィジェットです。
印刷
Qt は、ローカルまたはネットワーク上の実際のプリンタへの直接印刷と、PDF 出力の両方をサポー トしています。Qtで印刷を行う方法は Qt Print Supportページで詳しく説明されています。
画像
Qt では、QImage クラスを通して、画像の読み書きをサポートしています。さらに、画像の読み込みや保存をより細かく制御するには、それぞれQImageReader とQImageWriter クラスを使用します。Qt が提供する画像フォーマット以外の画像フォーマットのサポートを追加するには、QImageIOHandler とQImageIOPlugin を使って画像フォーマットのプラグインを作成します。
詳しくは画像ファイルの読み書きのページを参照してください。
© 2025 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.