Qt OpenGL

QtのUI開発には、主に2つのアプローチがある: Qt Quickそして Qt Widgets.これらは異なるタイプのユーザーインターフェイスをサポートするために存在し、それぞれのタイプに最適化された別々のグラフィックエンジンの上に構築されています。

Qtでは、OpenGLグラフィックスAPIで書かれたコードと、これら両方のユーザーインターフェイスを組み合わせることができます。これは、アプリケーションが独自の OpenGL 依存のコードを持っている場合や、サードパーティの OpenGL ベースのレンダラーと統合する場合に便利です。

Qt OpenGL モジュールには、この種の統合をより簡単かつ高速にするための便利なクラスが含まれています。

Qt OpenGL そしてQt Widgets

Qt Widgetsは通常、高度に最適化された正確なソフトウェア・ラスタライザによってレンダリングされ、アプリケーションが実行されているプラットフォームに適した方法で最終的なコンテンツが画面に再現されます。

しかし Qt WidgetsをOpenGLと組み合わせることも可能です。そのための主なエントリーポイントはQOpenGLWidget クラスである。このクラスは、ウィジェット・ツリーの特定の部分に対してOpenGLレンダリングを有効にするために使用することができ、Qt OpenGL モジュールのクラスは、任意のアプリケーション側のOpenGLコードを容易にするために使用することができます。

Qt OpenGL そしてQt Quick

Qt Quickはハードウェアアクセラレーションによるレンダリングに最適化されています。デフォルトでは、ターゲットプラットフォームに最も適した低レベルグラフィックスAPIでビルドされます。

例えば、WindowsではデフォルトでDirect3D 、macOSではデフォルトでMetal 。しかし、OpenGLがサポートされているプラットフォームでは、アクティブなグラフィックスAPIとしてOpenGLを手動で選択することも可能です。

でOpenGLを有効にする方法の詳細については Qt Quickの有効化の詳細については、scenegraph renderer documentationを参照してください。

モジュールの使用

Qt モジュールの C++ API を使用するには、モジュール・ライブラリを直接リンクするか、他の依存関係を介してリンクする必要があります。CMakeや qmakeなど、いくつかのビルドツールはこのための専用サポートを持っています。

CMake でのビルド

find_package() コマンドを使用して、必要なモジュール・コンポーネントをQt6 パッケージから探します:

find_package(Qt6 REQUIRED COMPONENTS OpenGL)
target_link_libraries(mytarget PRIVATE Qt6::OpenGL)

詳細については、CMakeによるビルドの概要を参照してください。

qmakeでのビルド

モジュールをqmakeでビルドするように設定するには、プロジェクトの.proファイルにQT 変数の値としてモジュールを追加します:

QT += opengl

リファレンス

モジュールの進化

Qt OpenGL の変更点には、Qt 6 シリーズの Qt で行われたモジュール API と機能の重要な変更点が記載されています。

ライセンスと商標

Qt OpenGL モジュールはThe Qt Company の商用ライセンスで利用できます。さらに、フリーソフトウェアライセンスでも利用可能です:GNU Lesser General Public License, version 3, またはGNU General Public License, version 2.詳細はQt ライセンスを参照してください。

OpenGL®は、米国およびその他の国における Silicon Graphics, Inc.の商標です。

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