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
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 固有のパーミッションにアクセスするために使用できます。
©2024 The Qt Company Ltd. 本書に含まれるドキュメントの著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。