Qt 6.1 の新機能

Qt 6.1 の新しいモジュールと復活したモジュール

Qt 6.1 では以下のモジュールが追加されました:

Active Qt モジュール

Active Qt はActiveX と COM のサポートを提供します:

  • Qt for Windows の開発者は、ActiveX コントロールや ActiveX サーバーが提供する COM オブジェクトにアクセスし、Qt アプリケーションで使用することができます。
  • 任意の数の Qt オブジェクトやウィジェットを COM オブジェクトや ActiveX コントロールとして使用し、Qt アプリケーションを COM サーバーとして使用できるようにします。

Qt Charts モジュール

Qt Charts は、加速された系列に対して OpenGL のみをサポートしています (AbstractSeries.useOpenGL)。他のグラフィックス API がレンダリングに使用されている場合、そのような系列は Qt Quick ではレンダリングされません。

Qt Data Visualization モジュール

Qt Data Visualizationは OpenGL RHI バックエンドのみをサポートしており、環境変数QSG_RHI_BACKENDopengl に設定する必要があります。これはシステムレベルで行うか、アプリケーションのmain()qputenv("QSG_RHI_BACKEND", "opengl"); と定義します。

Qt デバイスユーティリティモジュール

ネットワーク機能のみをサポートします。

Qt Lottie モジュール

Qt Lottie Animationモジュールが Qt 6 と CMake ビルドシステムに移植されました。

Qt SCXML と Qt StateMachine

インストーラのQt State Machinesパッケージには、Qt SCXMLQt State Machine の両方のモジュールが含まれています。

Qt 仮想キーボードモジュール

Qt Virtual Keyboardモジュールが Qt 6 と CMake ビルドシステムに移植されました。

  • 新しい辞書マネージャにより、ユーザー定義の辞書(電話帳など)をアプリケーションで実装できるようになりました。
  • VirtualKeyboardSettings に新しいプロパティが追加されました。
  • Cerence Handwriting (T9 Write) と XT9 のサポートが追加されました。

Qt 6.1 の新機能

Qt コアモジュール

  • QFuture 様々な状態のフューチャーを作成する新しい便利関数が追加され、コンテキストオブジェクトのスレッドでその継続を呼び出すことができるようになりました。
  • qfloat16 を初期化せずに構築できるようになりました。
  • <QtMath> はqHypot() を提供し、std::hypot() を一般化して任意の数の引数に対応し、qfloat16 の引数をサポートします。
  • qAddOverflow()、qSubOverflow()、qMulOverflow() 関数でオーバーフローセーフな算術演算がサポートされました。
  • removeIf() メソッドとerase_if() のサポートが、より多くのクラスに拡張されました:
    • QHash QMap 、およびそれらのMulti variants。述語は、std::pairかコンテナ自身のイテレータを取ります。
    • QSetまた、標準ライブラリとの互換性のために、位置ヒントを受け取る(ただし無視する)insert()オーバーロードも追加された。
    • QString QByteArray と は、指定された値のインスタンスをすべて削除する () もサポートしています。QList erase
    • QVarLengthArrayまた、erase()のサポートや、removeAll()とremoveOne()のメソッドも追加された。
  • QStringViewの API には、count(),contains(), indexOf(), lastIndexOf(), constBegin(), constEnd() が含まれるようになりました。
  • QLocale 列挙型から ISO コードへのマッピングが追加されました。languageToCode(), scriptToCode(), countryToCode(), codeToLanguage(), codeToScript(), codeToCountry() があります。
  • QSocketNotifier より柔軟な作成に対応しました。
  • QOperatingSystemVersion::version()、QMetaType::hasRegisteredDataStreamOperators()、QUntypedBindable::isReadOnly() を追加しました。
  • パブリックAPIとしてQJniObjectQJniEnvironment を追加(主にAndroidで使用)。
  • オブジェクトプロパティバインディングはAPI が改良され、Qt Core クラスにバインディングが追加されました。

Qt Gui モジュール

  • QColorSpace カスタム転送関数をテーブルとして設定できるようになりました。
  • QTextDocument QTextDocument をサブクラス化して loadResource() をオーバーロードする代わりに、リソースプロバイダ関数を設定できるようになりました。
  • Vulkan API ラッパー (QVulkanFunctions,QVulkanDeviceFunctions) が、Vulkan 1.1 および 1.2 コア API も公開するようになりました。
    • インスタンス生成前にサポートされているインスタンスレベルのバージョンをクエリできるように、QVulkanInstance に関連する新しい機能(supportedApiVersion())が追加されました。
  • QPainter::VerticalSubpixelPositioning ヒントを追加。これは現在、Freetypeフォントバックエンドでのみサポートされており、利用可能になると、多少のメモリと追加作業を犠牲にして、テキストの垂直方向のサブピクセル位置決めが可能になります。ほとんどの使用例では、これはオフにしておく必要がありますが、動的に変換されるペインター上でペイントされた要素を垂直方向に整列させたい非常に特殊な場合に役立ちます。

Qt ウィジェットモジュール

Qt Network モジュール

  • QNetworkCookie が SameSite 機能をサポートしました。
  • QNetworkInformation に導入されました:
    • QNetworkInformation 現在、システム API を使用して、システムの到達可能性を公開しています。
    • 現在、Darwin、Windows、Android、Linux の NetworkManager をサポートしています。
  • QSslSocket と関連するQSsl クラスを駆動する TLS バックエンドは、プラグイン指向のデザインに変換された。
    • QtNetwork の'ssl'サブモジュールのパブリック・クラスとプライベート・クラスは、TLSの実装に中立で、低レベルのAPI/詳細には触れないようになった。
    • 既存のTLSバックエンド(OpenSSL、SecureTransport、Schannel)は、どのクラス、機能、プロトコルをサポートしているかを報告するようになった。
    • Qt を使用するアプリケーションでは)独自のバックエンドを提供し、QSslSocket や関連クラスで使用することができます。

Qt Qml モジュール

  • QJSPrimitiveValueQJSManagedValue を追加し、JavaScript の実行をQJSValue だけよりも細かく制御できるようにしました。
  • qt6_add_qml_module CMake 関数 (まだ Tech Preview にあります) は qmllint ターゲットを追加し、ターゲットの QML ファイルに対して qmllint を実行します。

Qt Quick 3D モジュール

  • 技術プレビューです:「インスタンスレンダリング(Instanced Rendering)」は、同じオブジェクトの複数のインスタンスを異なるトランスフォームで描画する最適化された方法です。この機能は完成していますが、ユーザーからのフィードバックに基づき、API のマイナーチェンジが行われる可能性があります。最終的には Qt 6.2 で実装される予定です。
  • テクノロジープレビュー3D パーティクル、3D シーンにパーティクル効果を追加する API。この API はテスト用に準備されていますが、まだ機能は完全ではありません。
  • Qt Quick 3D がモーフターゲットアニメーションをサポートするようになりました。つまり、すべての頂点が 2 つの位置セットの間を補間し、ある形状が別の形状にモーフィングしているような印象を与えるアニメーションです。

Qt 5 互換モジュール

Qt Graphical Effects は Qt 6 に同梱されていませんが、多くのエフェクトが新しいグラフィックアーキテクチャに移植され、Qt5Compat モジュールに追加されました。例えば、DropShadow にアクセスするには、QML importQt5Compat.GraphicalEffects を追加します。動的なシェーダー生成に依存する複雑なエフェクトの一部(ぼかしのバリエーションなど)は削除されました。

API変更のリスト

これらのページには、Qt 6.1 における API の変更点の概要が記載されています:

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