Qt Extras モジュールの変更点
Qt 6 は、フレームワークをより効率的で使いやすくするための意識的な努力の結果です。
私たちは各リリースにおいて、すべての公開APIのバイナリとソースの互換性を維持しようと努めています。しかし、Qt をより良いフレームワークにするために避けられない変更もありました。
その変更のひとつが、Qt 6 の一貫したクロスプラットフォームのストーリーと未来を保証するために、プラットフォーム固有の Extras モジュールを削除することでした。これらのモジュールが提供する機能のほとんどは、他の Qt モジュールの同様の機能によって置き換えられています。このガイドでは、これらの代替機能を要約し、Qt が代替 API を提供していない場合のガイダンスを提供します。
Qt Mac Extras の変更点
QtMac 名前空間
QtMac 名前空間のほとんどのメンバは、明示的な置き換えがあります。QtMac::fromCGImageRef関数は、API のクライアントが知られていないため削除されました。
QMacPasteboardMime
QMacPasteboardMimeクラスがQUtiMimeConverter に置き換えられました。詳細は Qt GUI# ネイティブクリップボード統合への変更を参照してください。
QMacToolBar
QMacToolBarとQMacToolBarItemクラスが削除されました。代わりにQToolBar を使用してください。
Qt Windows Extras の変更点
QtWin 名前空間
QtWin 名前空間の多くのメンバに明示的な置換が追加されました。これらの置換をQt Widgets やQt Quick で使用するには、関連するウィジェットやコントロールのQWindow 表現を操作します。
残りの関数は削除されました:
errorStringFromHresult
WinExtras 内部でのみ使用。このAPIの他の既知のクライアントはありません。
colorizationColor/isCompositionOpaque
コンセプトは他のプラットフォームにも存在する(ティント/アクセントカラー)。新しいクロスプラットフォームAPI、例えば新しいQPalette ロールやプラットフォームテーマプロパティが必要。
setWindowFlip3DPolicy
Windows 7 の機能。Windows 10ではサポートされなくなりました。
extendFrameIntoClientArea
他のプラットフォームにも同様の機能がある。クライアント領域と非クライアント領域(フレーム/タイトルバー)の関係を制御するためのクロスプラットフォームQWindow API を保証します。詳細はQTBUG-94010を参照してください。
enableBlurBehind
Windows 8 では非推奨。
taskbarActivateTabおよびtaskbar(Add/Delete)Tab
API の既知のクライアントはありません。
QWinMime
QWinMimeクラスはQWindowsMimeConverter に置き換えられました。詳細は、 Qt GUI#ネイティブクリップボード統合への変更を参照してください。
QWinJumpList
QWinJumpList、QWinJumpListCategory、およびQWinJumpListItemクラスは、クロスプラットフォーム・ソリューションを保証するために削除されました。詳細はQTBUG-94007を参照してください。
QWinTaskbarButton
QWinTaskbarButtonクラスとQWinTaskbarProgressクラスは、クロスプラットフォーム ソリューションを保証するために削除されました。詳細はQTBUG-94009とQTBUG-94008を参照してください。
QWinThumbnailToolBar
API の既知のクライアントがないため、QWinThumbnailToolBarクラスとQWinThumbnailToolButtonクラスが削除されました。
Qt X11 Extras の変更
Qt X11 Extrasモジュールは Qt 6 で削除されました。
- QX11Info::connection() では、代わりにQNativeInterface::QX11Application::connection() を使用してください。
- QX11Info::display() では、代わりにQNativeInterface::QX11Application::display() を使用してください。
- QX11Info::isPlatformX11() では、代わりにQNativeInterface::QX11Application の存在を確認してください。
次のスニペットのように、QGuiApplication からQNativeInterface::QX11Application オブジェクトを取得できることを確認してください:
Display *display = nullptr; xcb_connection_t *connection = nullptr; bool isPlatformX11 = false; if (auto *x11Application = qGuiApp->nativeInterface<QNativeInterface::QX11Application>()) { display = x11Application->display(); connection = x11Application->connection(); isPlatformX11 = true; } // or // isPlatformX11 = qGuiApp->nativeInterface<QNativeInterface::QX11Application>();
QX11Infoクラスの機能に依存しているクライアントは、その場しのぎのソリューションとして、プライベート・ヘッダ<QtGui/private/qtx11extras_p.h>
。プライベート・ヘッダを有効にするには、qmake
でQT += gui-private
を使用するか、CMake
でQt::GuiPrivate
にプロジェクトの依存関係を追加します。
Qt Android Extras の変更点
このモジュールの主要な機能は、他の Qt モジュールに引き継がれました。
まだ不足している機能に依存しているクライアントは、その場しのぎの解決策として、プライベートヘッダ<QtCore/private/qandroidextras_p.h>
を含めることができます。プライベートヘッダを有効にするには、qmake
でQT += core-private
を使用するか、CMake
でQt::CorePrivate
にプロジェクトの依存関係を追加してください。
QAndroidJniObjectとQAndroidJniEnvironment
QAndroidJniObjectクラスとQAndroidJniEnvironmentクラスは、それぞれQJniObject 、QJniEnvironment 。
QAndroidJniExceptionCleanerクラスは不要になりました。QJniEnvironment::checkAndClearExceptions() を参照してください。
QtAndroid名前空間
QtAndroid 名前空間の多くのメンバは、QAndroidApplication ネイティブインターフェイスで置き換えられます。
パーミッション
Application Permissionsインフラストラクチャは、クロスプラットフォームでパーミッションのセットを要求できます。
QtAndroidPrivate 名前空間は、クロスプラットフォームのパーミッションシステムでカバーされていないAndroid固有のパーミッションにアクセスするために使用できます。
© 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.