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
この概念は他のプラットフォームにも存在します(tint/accent color)。新しいクロスプラットフォーム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
QWinThumbnailToolBarおよびQWinThumbnailToolButtonクラスは、この API を使用している既知のクライアントが存在しないため、削除されました。
Qt X11 Extras の変更点
Qt 6 では、Qt X11 Extrasモジュールが削除されました。
- 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> をインクルードすることができます。プライベートヘッダーを有効にするには、QT += gui-private にqmake を指定するか、プロジェクトの依存関係としてQt::GuiPrivate にCMake を追加してください。
Qt for Android Extras への変更点
このモジュールの主要な機能は、他の Qt モジュールに移管されました。
依然として削除された機能に依存しているクライアントは、暫定的な解決策として、プライベートヘッダー `<QtCore/private/qandroidextras_p.h> ` をインクルードすることができます。プライベートヘッダーを有効にするには、QT += core-private を使用してqmake を参照するか、CMake を使用してQt::CorePrivate をプロジェクトの依存関係に追加してください。
QAndroidJniObject および QAndroidJniEnvironment
QAndroidJniObjectクラスとQAndroidJniEnvironmentクラスは、それぞれQJniObject およびQJniEnvironment に置き換えられました。
QAndroidJniExceptionCleanerクラスは不要になりました。代替クラスについては、QJniEnvironment::checkAndClearExceptions() を参照してください。
QtAndroid 名前空間
QtAndroid 名前空間の多くのメンバーには、QAndroidApplication ネイティブインターフェース内に代替となるものが用意されています。
権限
アプリケーション権限インフラストラクチャにより、クロスプラットフォームな方法で一連の権限を要求することができます。
QtAndroidPrivate 名前空間を使用すると、クロスプラットフォームの権限システムではカバーされていない Android 固有の権限にアクセスできます。
© 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.