Qt 6への移植
前バージョンの Qt 5 から Qt 6 へは多くの変更があります。Qt 6 にアップグレードする前に、Qt 5 のアプリケーションが Qt 5.15 にアップデートされていることを確認してください。Qt 6 に移植する場合、Qt 5 の最新バージョンが最も変更点が少なくなります。しかし、Qt 5.15 で非推奨または廃止とされた API は、Qt 6 では削除されている可能性があります。
Qt 5 のアプリケーションを Qt 6 に移植する際に確認すべきことを以下に示します。
Qt 5.15 で非推奨となった C++ API の使用を無効にする
Qt で非推奨となった API を使用すると、通常コンパイラの警告として表示されます。また、ビルドシステムでQT_DISABLE_DEPRECATED_UP_TO C++ マクロを定義することで、使用をエラーにすることもできます。5.15 以前の Qt バージョンで非推奨とされた API を無効にするには、マクロを0x050F00
に定義します。
例えば、qmake プロジェクトファイルでは、マクロを次のように定義します:
DEFINES += QT_DISABLE_DEPRECATED_UP_TO=0x050F00
CMake では、add_compile_definitions を使用できます:
add_compile_definitions(QT_DISABLE_DEPRECATED_UP_TO=0x050F00)
モジュールの変更点の確認
Qt 6 のリリースの目標は、Qt 6 でいくつかの Qt 5 モジュールを削除し、合理化されたフレームワークを維持することです。場合によっては、廃止されたモジュールの API が別のモジュールで利用できることもあります。将来の Qt 6 リリースでは、新しいモジュールや以前のモジュールが追加されるかもしれません。
- Qt 6.0 で削除されたモジュール
- Qt 6.0 の新しいモジュール
- Qt 6.1 の新規モジュールと復元モジュール
- Qt 6.2 の新規モジュールと復元モジュール
- Qt 6 における Qt モジュールの変更点- Qt モジュールごとの変更点のリスト
グラフィカルなリグレッションのテスト
QML アプリケーションには新しいグラフィカルバックエンドが追加されました。OpenGLはターゲットプラットフォームのデフォルトとして保証されなくなりました。
QtアプリケーションでOpenGLコールを使用することは可能ですが、OpenGL APIは Qt OpenGLモジュールに移動しました。Qt Widgets アプリケーションのグラフィカルバックエンドは Qt 5 から変更されていません。
- グラフィックス
- Qt Quick の変更点- Qt 5 アプリケーションに影響を与えるQt Quick グラフィックスの変更点
高DPI
Qt 6 はすべてのプラットフォームで高 DPI ディスプレイをサポートし、Qt Widgets やQt Quick のような上位レベルの API を使用する際に、ディスプレイの解像度を自動的に考慮します。アプリケーションは画像やアイコンのような高解像度のアセットを提供するだけで済みます。この機能は常に有効です。
Qt 6 では、オペレーティングシステムの DPI 設定を正確に追跡するために、デフォルトのスケールファクターの丸め 方針をQt::HighDpiScaleFactorRoundingPolicy::Round からQt::HighDpiScaleFactorRoundingPolicy::PassThrough に変更しました。Qt Widgets を使用するアプリケーションでは、例えば 175% に設定された Windows のディスプレイのように、非整数のスケールファクターでグラフィックの不具合が発生する可能性があります。このような場合は、Qt 5 の動作を復元するために丸めポリシーをRound に設定してください。
詳細はHigh DPIを参照してください。
プラットフォーム統合 API を使用する
Qt 6 では、ターゲットプラットフォームのネイティブ API との統合が改善されています。プラットフォーム統合 API を使って、Qt が提供しないネイティブの動作を実装することができます。Qt 6 では、アプリケーションのターゲットプラットフォームのアップデートを確認してください。
移植ツールの使用
Qt 5 から Qt 6 への移植を容易にするために、Clazy ベースのツールが用意されています:Porting C++ Applications to Qt 6 using Clazy checks.
さらに読む
- Qt 6 の新機能- Qt 6 のマイナーバージョンにおける変更点
- Qt 6 におけるビルドシステムの変更点- ソースから Qt 6 をビルドする場合
- CMake:Qt 5 と Qt 6 の互換性- CMake で Qt 5 と Qt 6 の両方をサポートする方法
© 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.