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

QMacToolBarQMacToolBarItemクラスが削除されました。代わりにQToolBar を使用してください。

Qt Windows Extras の変更点

QtWin 名前空間

QtWin 名前空間の多くのメンバに明示的な置換が追加されました。これらの置換をQt WidgetsQt 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

QWinJumpListQWinJumpListCategory、およびQWinJumpListItemクラスは、クロスプラットフォーム・ソリューションを保証するために削除されました。詳細はQTBUG-94007を参照してください。

QWinTaskbarButton

QWinTaskbarButtonクラスとQWinTaskbarProgressクラスは、クロスプラットフォーム ソリューションを保証するために削除されました。詳細はQTBUG-94009QTBUG-94008を参照してください。

QWinThumbnailToolBar

API の既知のクライアントがないため、QWinThumbnailToolBarクラスとQWinThumbnailToolButtonクラスが削除されました。

Qt X11 Extras の変更

Qt X11 Extrasモジュールは Qt 6 で削除されました。

次のスニペットのように、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> 。プライベート・ヘッダを有効にするには、qmakeQT += gui-private を使用するか、CMakeQt::GuiPrivate にプロジェクトの依存関係を追加します。

Qt Android Extras の変更点

このモジュールの主要な機能は、他の Qt モジュールに引き継がれました。

まだ不足している機能に依存しているクライアントは、その場しのぎの解決策として、プライベートヘッダ<QtCore/private/qandroidextras_p.h> を含めることができます。プライベートヘッダを有効にするには、qmakeQT += core-private を使用するか、CMakeQt::CorePrivate にプロジェクトの依存関係を追加してください。

QAndroidJniObjectとQAndroidJniEnvironment

QAndroidJniObjectクラスとQAndroidJniEnvironmentクラスは、それぞれQJniObjectQJniEnvironment

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.