Qt Extras モジュールの変更点

Qt 6 は、フレームワークをより効率的で使いやすくするための意識的な努力の結果です。

私たちは各リリースにおいて、すべてのパブリックAPIのバイナリとソースの互換性を維持しようと努めています。しかし、Qt をより良いフレームワークにするために、避けられない変更もありました。

その変更のひとつが、Qt 6 の一貫したクロスプラットフォームのストーリーと未来を保証するために、プラットフォーム固有の Extras モジュールを削除することでした。これらのモジュールが提供する機能のほとんどは、他の Qt モジュールの同様の機能によって置き換えられています。このガイドでは、これらの代替機能を要約し、Qt が代替 API を提供していない場合のガイダンスを提供します。

Qt Mac Extras の変更点

QtMac 名前空間

QtMac 名前空間のほとんどのメンバは、明示的な置き換えがあります。QtMac::fromCGImageRef関数は、API のクライアントが知られていないため削除されました。

QMacPasteboardMime

QMacPasteboardMimeクラスは、QUtiMimeConverter に置き換えられました。詳しくは、Changes to Qt GUI#Native clipboard integrationを参照してください。

QMacToolBar

QMacToolBarQMacToolBarItemクラスが削除されました。代わりに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

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 固有のパーミッションにアクセスするために使用できます。

©2024 The Qt Company Ltd. 本書に含まれるドキュメントの著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。