Qt 6.2 の新機能

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

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

  • QtQuick.Dialogs - Qt がネイティブのダイアログを提供していないプラットフォームで Qt Quick フォールバックを提供する QML モジュール。 と はこのリリースで利用可能です。FileDialog FontDialog

Qt 6.2 では、Qt 6.1 にはなかった以下のモジュールが再導入されました。すべてのモジュールは Qt 6 と CMake ビルドシステムに移植されました。

各モジュールの変更点の詳細なリストはQt 6 における Qt モジュールの変更点にあります。

  • Qt Bluetooth
    • BlueZ 4 のサポートが削除されました。
    • Win32 バックエンドが削除されました。その結果、Mingw-w64 を使用した Qt Bluetooth のサポートがなくなりました。
    • QML API が削除されました。
    • QBluetoothTransferManager と関連クラスが削除されました。
    • ペアリングエージェントに関する機能がQBluetoothLocalDevice から削除されました。
  • Qt マルチメディア
    • Qt Multimedia のパブリック API は、5 つの大きな機能ブロックから構成されています。各 API は Qt 5 と比較して大きな変更が加えられています:
      • デバイス検出
      • 低レベルオーディオ
      • 再生とデコード
      • キャプチャと録画
      • ビデオ出力パイプライン
    • 現在サポートされているバックエンド
      • Linux:GStreamer
      • WindowsWMF
      • macOS/iOS:AVFoundation
      • Android:MediaPlayer および Camera API
  • Qt NFC
    • Linux/NearD のサポートを削除。
    • iOS のサポートを追加。
  • Qt ポジショニング
    • 多くのプロパティをバインド可能にした。
    • QGeoPolygon::path() の名前をQGeoPolygon::perimeter に変更した。
    • QGeoLocation バウンディングエリアとして の代わりに を使用するようになりました。QGeoRectangle QGeoShape
    • 複数の位置決めクラスのerror() シグナルの名前をerrorOccurred() に変更しました。
    • QGeoPositionInfoSourceFactoryV2 が削除され、QGeoPositionInfoSourceFactory が作成されるオブジェクトのカスタム・パラメータをサポートするようになりました。
    • NMEA サポートが再設計されました。serialnmeaプラグインの名前がnmeaに変更され、TCP ソケットまたは raw ファイルからの入力ストリームの読み取りに対応しました。nmeaSource プロパティが削除されました。
  • Qt リモートオブジェクト
    • localabstract ローカル接続バックエンドが抽象名前空間をサポートするようになりました(これは Linux 固有の拡張です)。
    • .rep-ファイルがサポートされるようになりました:
      • ファイルが以下をサポートするようになりました。
      • QFlags.
      • マルチラインコメント(Cスタイル)。
    • POD-types および.rep ファイルのQMap およびQHash プロパティのキーとして、enum およびflags がサポートされるようになりました。
  • Qt センサー
    • ほとんどの QML フェイシング・プロパティがバインド可能になりました。
    • Sensor::type また、 のプロパティが定数としてマークされるようになりました。QSensor::type
    • ビジー状態もクリアできるようにQSensorBackend::sensorBusy() にパラメーターを追加。
    • qtimestamp の typedef を削除。
    • センサーtype の文字列の名前をsensorType に変更。
    • Windows に対応:Windows: Windows 10 API を要求できるようになり、対応するセンサーの数が増えた。
    • サポートされるプラットフォームとして TI Sensor Tag が削除された。
    • Linuxsysfs バックエンドが削除されました。
    • センサージェスチャーのサポートが削除されました(入力歓迎:QTBUG-97066)。
    • Sensorfw 自体がまだ Qt 6 に移植されていないため、プラットフォームとしての Sensorfw が削除されました。
    • Sensorfw バックエンドのみを持っていたセンサータイプ (IRProximity, Lid, and Tap) はサポートされなくなりました。
    • バックエンドを持たないセンサータイプは削除されました(高度計、距離、ホルスター)。
  • Qt シリアルバス
  • Qt シリアルポート
  • Qt WebChannel
    • QWebChannel プロパティがバインド可能になった。
    • QWebChannel のプロパティ更新間隔を設定できるようになりました。更新間隔はデフォルトの 50ms のままです。
    • QWebChannel BINDABLE プロパティのプロパティ更新に対応しました。ただし、ホスト・プロパティが NOTIFY シグナルを持っていない場合、クライアント側は汎用的なコールバック・メカニズムを提供しません。
    • 異なるスレッドに住んでいるオブジェクトからのシグナルが正しく処理されるようになりました(QTBUG-51366)。
  • Qt WebEngine
    • Qt Quick のサブモジュールの名前が QtWebEngine からQtWebEngineQuick に変更されました。
    • QWebEnginePage を含むいくつかのクラスがQtWebEngineWidgets からQtWebEngineCore に移動されました。
    • これまでQWebEnginePage からの派生でしかアクセスできなかったいくつかの機能は、同期シグナルを使用してアクセスできるようになりました。
    • QWebEngineProfile に、特定の URL のアイコンを検索するための Favicon API が追加されました。
    • 新しいQWebEngineLoadingInfo クラスは、読み込みの成功または失敗に関する詳細を提供します。
  • Qt WebSockets
  • Qt WebView

Qt 6.2 の新機能

Qt コアモジュール

  • 機能追加:
    • QByteArrayView::compare() を追加。
    • QFlags::test(Any)Flag(s) メソッドを追加。
    • ハッシュを制御するためにQHashSeed を追加した(シードは size_t になった)。これは qGlobalQHashSeed と qSetGlobalQHashSeed を置き換える。
    • PRIxQTDATATYPEマクロを追加し、キャストや警告なしでprintf()スタイルの書式設定ができるようになりました。
  • 多くのプロパティをバインド可能にした。
  • Grapheme クラスタが絵文字を扱えるようになりました。
  • Windows上のUNCパスとネットワーク共有が一貫して処理されるようになりました。
  • コンテナ(主にQString,QByteArray とそれらのビュー)の様々なindexOf()lastIndexOf() メソッドでfrom と呼ばれる start-offset パラメータの扱いがより首尾一貫したものになりました。
  • Qt 6.0 のリリース以降のQString::number() と同様に、QByteArray::number() の符号付き整数型のオーバーロードで、負の整数とサポートされる任意の基数を渡した場合に、10 を除くすべての基数に対して符号なし型に強制する代わりに、マイナス記号の後に数値の絶対値を付けたテキストを返すようになりました。
  • QCalendar カスタムバックエンドのIDからの構築に対応しました。
  • QChar QPoint と は、単に再配置可能なのではなく、プリミティブになりました。QPointF
  • QCoreApplication::exit()がquit()と同様にスロットとなりました(長い間ドキュメントに記載されていました)。QEventLoopQThread についても同様です。
  • QDateTime time_tの範囲を人為的に1970年から2037年に制限するのではなく、(プラットフォームがそのような情報を提供する限りにおいて)time_tの範囲全体でタイムゾーンを考慮するようになりました。
  • QFlags の値型の動作に肉付けを行い、より体系的に使用されるようになりました。
  • C++20用にビルドする場合、QList (したがって、QVector )は、contiguous_iterator になり、contiguous_range を満たすようになりました。
  • QLocalSocket::waitFor*()メソッドがWindows上で二重操作をサポートするようになった(Unix上ではすでにサポートされていた)。
  • QLockFile メソッドに std::chrono オーバーロードが追加され、UTC とローカルタイム間の不要な変換を回避できるようになりました。
  • QString char8_tからビルドできるようになった(利用可能な場合)。
  • QThreadPool のスレッド優先度を設定できるようにした。
  • 多くのバグフィックス、クリーンアップ、ドキュメントの改善。

Qt GUI モジュール

  • QImage に16ビットと32ビットの浮動小数点画像フォーマットを追加。
  • RGB 画像をグレースケール画像に変換したり、RGB カラーをグレースケール画像にペイントする際、ガンマ補正され、入力色空間の輝度値が生成されるようになりました。
  • CSStext-decoration-color属性が、アンダーライン、オーバーライン、取り消し線付きのリッチテキストでサポートされるようになりました。

Qt Quick モジュール

Qt Quick Controls モジュール

  • 新しいコントロールSelectionRectangle を追加しました。このコントロールを使って、TableView のセルをスタイル付き選択矩形で選択できるようになりました。

Qt Widgets モジュール

Qt Network モジュール

  • QSslSocket
    • 以前(Qt 6.1では)プラグインのようなクラスに変換されていたTLSバックエンドは、QtNetworkから移動され、本当のプラグインとして実装されました。
    • 例えば、OpenSSL と Schannel、OpenSSL と SecureTransport などです。
  • QNetworkInformation
    • ユーザーがキャプティブポータルでネットワークに接続されているかどうかを判断するために使用できる新しいプロパティ、isBehindCaptivePortal を導入しました。

Qt QML モジュール

  • コア言語
    • オプショナル・チェイニングのサポートを追加。
    • キャストを追加:これらは主にツーリングに役立ちますが、return (obj instanceof Item) ? obj.width : 42 のようなコードを(obj as Item)?.width ?? 42 に置き換えるために使用することもできます。
  • QML モジュール用のパブリック CMake API を追加:qt_add_qml_module()
    • qmldirqmltypes を生成します。
    • プラグインが型のみを登録する場合、自動的にプラグインを作成します。
    • linting ターゲットの組み込みサポート。
  • QMLツール
    • qmllint
      • 警告の厳しさを細かく設定できるようになりました。警告を完全に無効にしたり、情報提供のみにしたり、0以外の終了コードにしたりできます。
      • ディレクトリ毎に警告レベルを設定するための設定ファイル(.qmllint.ini)を追加。デフォルトの設定ファイルはqmllint --write-defaults を使用して生成できます。
      • コメントによって警告をブロック内で無効にできるようになりました;//qmllint enable/disable <warning-type1> <warning-type2...>
      • ファイルのリンティング時のパフォーマンスが大幅に改善され、特にインポートが多い複数のファイルのリンティング時のパフォーマンスが大幅に改善されました。
      • ツールで使用する JSON 出力のサポートを追加しました。
    • qmlformat
      • qmlformat 新しいqmldomライブラリを使用するようになり、一般的に出力が改善されるはずです。

Qt Quick 3D モジュール

  • インスタンスレンダリングのサポートを追加しました。これは、同じオブジェクトの複数のインスタンスを異なる変換で描画する最適化された方法です。
  • 3D シーンにパーティクル効果を追加する API である 3D Particles を追加しました。これにはモデルブレンドパーティクルのテクノロジープレビューが含まれます。
  • シーンとテクスチャの両方で、3D の 2D アイテム用の Qt Quick Input イベントを追加。
  • シーン内の任意のポイントからレイベースでピックするための API を追加。
  • RuntimeLoader を追加し、実行時に glTF2 ファイルをロードできるようにした。
  • 視差オクルージョンマッピングを実装:ジオメトリを追加することなく、ハイトマップを使用できるようになりました。
  • マテリアルに深度描画モードを実装:マテリアルの深度レンダリングを細かく制御できるようになりました。

Qt Data Visualization モジュール

  • 背景レンダリングモードを修正しました。
  • RenderDirectToBackground_NoClear は、Qt 6 ではウィンドウをクリアしないオプションがなくなったため、非推奨となりました。
  • たくさんの細かいバグ修正。

Qt Charts モジュール

  • QScatterSeriesQLegend に選べるマーカー形状を追加。
  • QXYSeriesQLegendライトマーカー機能を追加しました。これはポイントのレンダリングを軽量化したものです。
  • QXYSeriesQBarSet に、メソッド呼び出しによって一連のポイントを選択する機能を追加。
  • QXYSeries に、選択したポイントに使用する色を設定したり、カスタムライトマーカーを使用したりする機能を追加。
  • QBarSet で、選択したバーに使用する色を設定する機能を追加。
  • QXYSeriesベストフィット線を表示する機能を追加。
  • QXYSeries で個々の点の外観をカスタマイズする機能を追加。 この機能では、各点の可視性、ラベルの可視性、サイズを設定できる。
  • QXYSeries にメソッドsizeBy() を追加し、渡された値に従ってシリーズ内の点のサイズを調整するようにした。
  • QXYSeries に、渡された値とグラデーションに従って系列内の点の色を調整するメソッドcolorBy() を追加。
  • カラー・スケールを表示するcolorBy()機能をサポートする新しい軸クラスQColorAxis を追加。
  • 軸のラベルの切り捨てを無効にする機能を追加しました。
  • 最近使用されたテキスト境界をキャッシュすることによるパフォーマンスの向上。
  • setInteractive() メソッドによるQLegend へのインタラクティブ・サポートの追加。有効にすると、ダブルクリックで凡例を切り離すことができる。一度切り離すと、凡例はドラッグしてサイズを変更したり、端からドラッグしてチャートの側面に再度取り付けることができる。
  • QLegendattachedToChartChanged() シグナルを追加。
  • 凡例の例を更新。

Python 用 Qt

  • Qt for Python ドキュメントに新しい例、チュートリアル、ビデオを追加しました。
  • Python 3.10rc2 と互換性があります。
  • QtDBus,QtNetworkAuth,QtBluetooth モジュールを追加しました。
  • C++コンテナをPythonにコピーして使用するのを避けるために、Shibokenの新しい機能である不透明コンテナを追加しました。
  • PySide をソースからビルドするときにqmake の代わりにqtpaths を使えるようになりました。
  • QThreadPool のいくつかのメソッドに std::function のサポートを追加しました。
  • 新しい QML 関数とqmlRegisterSingletonInstance のサポートを追加しました。

プラットフォームの変更

技術プレビュープラットフォーム

ARM上のWindows

  • テクノロジー・プレビュー・プラットフォームとして Windows on ARM64 を追加。
  • ビルドターゲットとしてサポート。ホストは未サポート。
  • 既知の制限事項
    • QtWebEngine をサポートしていません。Chromium の公式サポートがありません。
    • SSL のサポートはまだありません。OpenSSL の公式サポートがありません。

デスクトッププラットフォーム

アップルシリコン上の macOS

  • ターゲットおよびホストプラットフォームとしての公式サポートが追加されました。
  • Qt SDK のライブラリはユニバーサルバイナリとしてビルドされます。
  • 既知の制限事項
    • SSL のサポートがありません。
    • postgresqlodbcデータベースプラグインがありません(QTBUG-93204)。
    • JIT サポートがありません(QTBUG-93206)。

Linux上のWaylandクライアント

  • タッチパッドのピンチジェスチャーは、コンポジターがpointer-gestures-unstable-v1プロトコルで送信する場合、Zoom と RotateQNativeGestureEventを生成するようになりました。これにより、Qt QuickPinchHandler をタッチパッドのピンチジェスチャーで操作できるようになりました。2 本指、3 本指、または 4 本指のジェスチャが認識されます。3本または4本の指でスワイプすると、Qt::PanNativeGesture のジェスチャーを生成できます。2本指のフリックでは、従来どおりQWheelEventが生成されます。

モバイル・プラットフォーム

アンドロイド

  • QtAndroidExtras の QtAndroid 名前空間の下にあったメソッドの一部(例えば、sdkVersion() や context())は、QNativeInterface::QAndroidApplication に移動されました。
  • 新しいパーミッションAPIをQCoreApplication
  • 残りの QtAndroidExtras API は、(Intents や Services などの)クロスプラットフォームの代替が整うまで、qtbase のプライベート API として残されました。
  • 廃止された Ministro のコードを削除しました。
  • AndroidManifest.xmlを簡素化し、ユーザーに関連するタグのみを含むようにした。
  • QCDebug()とそのフレンドは、Androidlogcatのタグとしてカテゴリーを使用するようになりました。
  • Android Gradle プラグインを 4.1.3 に更新。
  • Android 9+ のウィジェット用の Android スタイルはまだ影響を受けますが(QTBUG-96149)、スタイルに関する非 SDK API バグを修正しました(QTBUG-71590)。
  • Google Play ストアの要件に従って、デフォルトの targetSdkVersion を 30 に設定しました。
  • 使用されるビルドツールのバージョンとプラットフォームのバージョンは 30 に変更されました。
  • QDesktopServices カスタム・ハンドラが有効になり、例えばAndroid App Linksと連携できるようになった。
  • QtActivity の独自の拡張を作成することなく、アプリケーションがインテントのソースを決定できる情報を追加しました。
  • QML モジュールのインポートを修正し、複数の QML ルートパスの可能性を追加しました。
  • Android での Vulkan ビルドを修正しました。

iOS

  • CMake サポートを改善。
  • 既知の問題:
    • デフォルトの起動画面のストーリーボードがない。
    • カスタムライブラリのインストールに失敗する(QTBUG-95381)。

組み込みプラットフォーム

Qt for Device Creationライセンスで利用可能です。

Qt への起動

  • Boot to Qt スタックが Yocto 3.3 (Hardknott) を使用するように更新されました。
  • リファレンスターゲットとして Intel NUC10 (64bit i5 x86) を追加しました。
  • ターゲットに NVidia Jetson Tegra X2 を追加。

QNX

  • ホストとして QNX バージョン 7.1 および Ubuntu 20.04 を追加。
  • リファレンスターゲットとしてNXP iMX8QMを追加。

INTEGRITY

  • ホストとしてINTEGRITYバージョン19.0.13とUbuntu 20.04を追加。
  • リファレンスターゲットとしてQualcomm Snapdragon 8155Pを追加。

WebOS

Qt 6.2 が、Ubuntu 20.04 を開発ホストとして、Raspberry Pi4 ハードウェアを使用した LG webOS OSE 2.13.1 で動作することが確認されました。

API 変更点のリスト

これらのページでは、Qt 6.2 における API の変更点の概要を説明します:

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