このページについて

変更点Qt OpenGL

Qt 6の変更点は、フレームワークの効率性と使いやすさを向上させるための意図的な取り組みの結果です。

各リリースにおいて、すべての公開APIについてバイナリおよびソースの互換性を維持するよう努めています。しかし、Qtをより優れたフレームワークにするためには、一部の変更は避けられませんでした。

このトピックでは、それらの変更点を Qt OpenGL、それらに対処するためのガイダンスを提供します。

非推奨クラスの削除

Qt OpenGL モジュールは Qt 5 の期間中に非推奨となり、そこに含まれていたクラスは Qt 6 で削除されました。

これは、具体的にはQGL というプレフィックスが付いたクラスを指します。

QOpenGL クラスの移行

Qt 5 では、OpenGL をサポートする一連の代替クラスが Qt GUI に追加されました。これは、Qt のグラフィックスの基盤となるクロスプラットフォームのグラフィックス API として OpenGL をサポートするためでした。

Qt 6 では、これらは Qt OpenGL モジュールに移行されました。これらは、OpenGLに直接依存するアプリケーションでは引き続き使用可能であり、完全にサポートされています。ただし、Qtは基盤としてDirect3D、Metal、Vulkanなどの他のグラフィックスAPIをサポートするように拡張されたため、これらはもはや基盤的なものとは見なされなくなりました。

既存のアプリケーションコードは概ね引き続き動作しますが、プロジェクトファイルに Qt OpenGL をプロジェクトファイルに明示的に含める必要があります。また、以前に Qt GUI を通じて間接的にインクルードされていたヘッダーについても、明示的にインクルードする必要があります。

注: 注目すべき例外として 、QOpenGLContextが 挙げられます。これは依然として Qt GUI 内に存在します。

QOpenGLWidgets クラス

もう 1 つの例外は、QOpenGLWidget クラスです。これは、 Qt OpenGL Widgets という新しいモジュールに移動されており、そこからインクルードする必要があります。

RHI 用の OpenGL バックエンドの選択

プロジェクトファイルの調整やヘッダーファイルのインクルードに加え、Qt Quick を使用する際には、この機能を利用するために、アプリケーションでレンダリングバックエンドを手動で OpenGL に設定する必要があります。デフォルトでは、Qt はターゲットプラットフォームで最も適切なグラフィックス API を使用します。詳細については、RHI レンダリングのドキュメントを参照してください。

ANGLEの削除

Windows では、サードパーティ製の OpenGL ES から Direct 3D への変換ツールである ANGLE が、Qt 6 には含まれなくなりました。これにより、Qt::AA_UseOpenGLES および環境変数QT_OPENGL=angle は、もはや何の効果も持ちません。動的 OpenGL ビルドでは、OpenGL 本体の初期化に失敗した場合でも、ANGLE への自動フォールバックは行われません。 例えば `QOpenGLWidget` などを介して OpenGL を直接使用する、QWindow またはQWidget ベースのアプリケーションの場合、実行時には OpenGL 本体のみが利用可能となります。ただし、Qt のプリビルドパッケージに同梱されている Mesa llvmpipe などの純粋なソフトウェア OpenGL 実装の使用は、引き続き可能です。

Qt Quick およびQt Quick の3Dアプリケーションについては、Qt 6ではOpenGLに加え、Direct 3D 11、Vulkan、Metalのサポートが導入されています。Windowsでは、Qt 6のデフォルトはDirect 3Dであるため、他のグラフィックスAPIへのサポートが追加されたことで、ANGLEが削除されたことによる影響は軽減されています。

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