Qt 6.6 の新機能
Qt 6.6 の新しいモジュールと復活したモジュール
Qt 6.6 では、以下のモジュールとツールが追加されました:
テクニカルプレビューの新規モジュールと復元モジュール
注意: API と ABI の安定性は保証されていません。
Qt Graphs モジュール
Qt GraphsはQt Data Visualization の代替モジュールです。Qt Data Visualization のように OpenGL 2.1 に依存するのではなく、Qt Quick 3D をレンダリングエンジンとして使用し、ネイティブグラフィックバックエンドをサポートします。
このモジュールは、Qt Data Visualization の機能のすべてではないにしても、そのほとんどを提供します。一部の高度な機能は、テクニカルプレビューでは不完全な場合があります。
Qt 6.6 の新機能
Qt Core モジュール
- コンストラクタの nodiscard マークに適用されるQ_NODISCARD_CTOR マクロを追加しました。このマクロは、
[[nodiscard]]
をサポートしているコンパイラでは解決され、それ以外のコンパイラでは何もしません。 - 以下の Qt コンテナに
assign()
オーバーロードを追加した:QVarLengthArray QList 、QByteArray 、QString 。これらの関数は、既存のcapacity()
を再利用しながら新しいデータを割り当てる便利な方法です。 - CMakeLists.txt で QT_DISCARD_FILE_CONTENTS ソースファイルプロパティを指定することで、リソースファイルシステムに追加されたファイルの内容を省略することができます。ファイル・ノードは保持されます。手動で
.qrc
ファイルを書き込む場合は、file
XML ノードのempty
属性をtrue
に設定することで、同じ効果を得ることができます。 - QFileInfo 生のパスを返す新しい () メンバ関数と、タイムスタンプに関連する関数に を取る新しいオーバーロードが追加されました。readSymLink QTimeZone
- QProcess::UnixProcessParameters struct とQProcess::UnixProcessFlag enum は、新しいQProcess::setUnixProcessParameters() メンバ関数で使用することができ、子プロセスの Unix 固有の設定やパラメータを変更することができます。
- 新しいQNativeIpcKey クラスは、QSharedMemory とQSystemSemaphore で使用されるネイティブ・キーを保持し、Apple プラットフォームのサンドボックス・アプリケーションをより良くサポートします。詳細はネイティブ IPC キーを参照してください。
- タイムスパンを扱う Qt API のほとんどが
std::chrono
の関連データ型に移植されました。 - QXmlStreamReader::hasStandaloneDeclaration() は、ドキュメントに明示的なスタンドアロン宣言があるかどうかを報告します。
Qt GRPC モジュール
- QGrpcChannelOptions とQGrpcCallOptions を追加しました。これらは、チャンネルとコールにオプションを渡すための新しいメソッドです。
- 呼び出しに追加のメタデータを渡すためのQGrpcMetadataを追加。
- 自動生成される QtGRPC クラスの QML-types サポートを統合した。
Qt GUI モジュール
- フォントの OpenType 機能に直接アクセスできる QFont::setFeatures() を追加。
- QPalette デフォルトでシステムのアクセントカラーを使用する () カラーエントリが追加されました。accent
- QRhi ファミリーのクラスが完全にドキュメント化され、限定的な互換性を約束する API として提供されるようになりました。Qt Rendering Hardware Interface は 3D グラフィックス API とシェーディング言語の抽象化レイヤで、Qt Quick やQt Quick 3D などのモジュールで使用され、Direct 3D 11/12、Vulkan、Metal、OpenGL、OpenGL ES 上で機能するクロスプラットフォームでポータブルなレンダリングエンジンとマテリアルシステムを実装します。潜在的にプラットフォーム固有の 3D API やシェーディング言語に直接依存することなく、独自の低レベルレンダリングを実行したいアプリケーションは、QRhi と関連クラスを使用して、Qt Quick シーンを拡張したり、QWindow にレンダリングしたり、テクスチャにオフスクリーンレンダリングを実行したり、GPU の計算ワークロードをディスパッチしたりできるようになりました。以前の Qt 6 リリースでは、QRhi クラスは完全にプライベートであり、ドキュメンテーションは標準 Qt ドキュメンテーションセットの一部として提供されていませんでした。つまり、パブリック Qt API の標準的なパターンやソース/バイナリの互換性をすべて提供するわけではありませんが、中級/上級レベルのアプリケーション開発者が使用できる特別なクラス群です。QRhi API のドキュメントは標準 Qt ドキュメントの一部となりました。また、rhiwindow のサンプルを導入しました。
- QRhi に Direct 3D 12 バックエンドを追加しました。Qt Quick とQQuickWidget のデフォルトのバックエンドは Windows の Direct 3D 11 です。新しい D3D12 バックエンドは、当面は実験的なものと考えるべきで、主に、アプリケーション自身、または D3D12 を必要とする外部コンポーネントのレンダリングエンジンや計算エンジンとの相互運用を簡素化するために、Qt に Direct 3D 12 経由でレンダリングを実行させる必要があるアプリケーションに役立ちます。
- Qt 6 アプリケーションは、新しいQUtiMimeConverter (macOS 用) とQWindowsMimeConverter (Windows 用) クラスを使用して、カスタムまたはプラットフォーム固有のクリップボード形式をサポートできるようになりました。これらのクラスは Qt 5 の QMacPasteboardMime 型と QWindowsMime 型の統合版です。既存の実装を適応するためのヘルプは移植ガイドを参照してください。
- QTextListFormat::setStart() は、テキストリストを 1 以外のインデックスで開始できるようにします。
Qt Location モジュール
- 地図アイテムがより正しくレンダリングされるようになりました。
- 地図アイテムが異なる参照サーフェスを使用してレンダリングできるようになりました。QLocation::ReferenceSurface enum にはオプション
Map
とGlobe
があり、アイテム タイプのreferenceSurface プロパティと一緒に使用することで、アイテムを平坦なマップ上にレンダリングするか、地球儀の曲率に従ってレンダリングするかを制御できます。 - Shift モディファイアを押しながらマウスホイールを操作するとbearing を変更でき、Control モディファイアを押しながらマウスホイールを操作するとtilt を変更できます。
Qt Multimedia モジュール
- Qt Multimedia ライブラリでは、オーディオまたはビデオのアクセス許可が要求されなくなりました。クライアント・アプリケーションは、C++ またはQMLpermissions API を使用してパーミッションを要求する必要があります。
- 新しいQWindowCapture クラスは、QMediaCaptureSession 内の個々のデスクトップ・アプリ ケーション・ウィンドウのビデオをキャプチャするためのサポートを追加しました。 記録されたビデオは、QMediaRecorder やQVideoWidget など、どのようなタイプのビデオ出力にも向けることができます。
- QMediaRecorder は、ビデオの品質、解像度、ビットレートをよりよく制御できるプロパティで拡張されています。
Qt PDF モジュール
- 新しいQPdfLinkModel クラスは、指定されたページ上のリンク・ジオメトリとリンク先を提供します。
- QPdfDocument::pageModel() はQt::DecorationRole を実装し、ページのサムネイルをオンデマンドでレンダリングします。
- 新しいQPdfPageSelector クラスは、ウィジェットベースの PDF ビューアでページを選択するために特化されたQSpinBox です。
Qt Positioning モジュール
- Qt Positioning ラ イ ブ ラ リ は、 ロ ケ ーシ ョ ン権限を要求 し な く な り 、 提供 さ れてい る か ど う か をチ ェ ッ ク す る だけ と な り ま し た。クライアントアプリケーションはC++ またはQMLpermissions API を使ってパーミッションを要求しなければなりません。
Qt Protobuf モジュール
- 特定のQt Core とQt GUI タイプを *.proto スキーマの一部として使用できるようになりました。
- 自動生成されるQProtobufMessage クラスの QML-types サポートを統合。
- 自動生成されたQProtobufMessage クラスの暗黙の共有データへの移行。これにより、多くのコピーを作成することなく、QML コンテキストから値によってメッセージタイプにアクセスできるようになりました。
- google.protobuf.Any型のQt Protobuf Well-Known Types サポートを追加しました。
- 値を含まなくてもよい、protobufのユニオンのような型であるoneof型のサポートを統合しました。
Qt Bluetooth モジュール
- Qt Bluetooth ライブラリは、ブルートゥースのパーミッションを要求しなくなった。クライアントアプリケーションはC++ またはQMLpermissions API を使用してパーミッションを要求する必要があります。
- Qt がネイティブの 128 ビット符号なし int 型 quint128 を提供するようになりました。これをサポートするプラットフォームでは、QBluetoothUuid(quint128) コンストラクタとQBluetoothUuid::toUInt128() メソッドは、以前の Qt バージョンが使用していたカスタム構造体の代わりにこの型を使用します。あなたのコードがquint128を不透明な型として扱う限り、この変更はソースとバイナリに互換性があります。しかし、問題が発生した場合は、QUuid::Id128Bytes 、新しいオーバーロードを使用することを検討してください。(MSVCのような)128ビットint型をサポートしていないプラットフォームでは、Qt Bluetooth のカスタム構造体を使用します。
Qt QML モジュール
- QML によるアプリケーションのパーミッション管理のサポートを追加しました。Qt Qml Qt Coreモジュールは、Qt C++Application Permissions の機能を QML に公開します。Qt C++Application Permissionsは、クロスプラットフォームでパーミッションのチェックやリクエストに使用できるパーミッション型のセットです。詳しくはQML Application Permissionsを参照してください。
- XMLHttpRequest オブジェクトに2つの機能が追加され、モダンブラウザに近づきました。responseURL プロパティが追加され、リダイレクトの有無を確認できるようになりました。同様に、overrideMimeType メソッドが追加されました。このメソッドは、レスポンスの Content-Type ヘッダではなく、特定の MIME タイプに基づいてXMLHttpRequest オブジェクトにレスポンスを解析させるために使用できます。
- QML言語Serverはgo-to定義とfindの使い方を初期サポートしました。また、完全なドキュメントフォーマットもサポートしています。
- プラグインで qmllint を拡張できるようになりました。プラグインAPIは現在技術プレビュー中です。
Qt Quick モジュール
- フォント内の OpenType 機能に直接アクセスするためのfont.features プロパティを追加しました。
- TableView selectionMode プロパティが追加され、単一または複数のセルを選択できるようになりました。
- TreeView モデルからサブツリーのみを表示するための プロパティが追加されました。rootIndex
- AnimatedImage が プロパティに対応しました。sourceSize
- 環境変数
QT_QUICK_FLICKABLE_WHEEL_DECELERATION
、「クリッキー」ホイール・マウスでスクロールした後の減速をカスタマイズできるようになりました。デフォルトでは、(プラットフォームが独自の加速度を提供しない限り)スクロール距離が「クリック」回数に比例するように加速度がオフになりました。flickDeceleration プロパティはタッチフリックにのみ適用されるようになりました。 - ほとんどのプロパティがFINALになりました。つまり、同じ名前で新しいプロパティを宣言しても、シャドウされなくなりました。
FINAL
プロパティがシャドウされた場合、警告が発せられます。予期せぬ動作の変化を避けるため、そのようなプロパティの名前を変更することをお勧めします。 - QQuickWindow 、QQuickRenderControl 、QSGTexture にQRhi 関連の関数を追加し、公開しました。オンスクリーンまたはオフスクリーンのQt Quick レンダリングで使用されるQRhi,QRhiSwapChain, またはQRhiCommandBuffer のクエリが簡素化されました。以前はQRhi* クラスに依存していたためにドキュメントから隠されていたいくつかの関数が見えるようになりました。QQuickWindow 、createTextureFromImage() と対になるcreateTextureFromRhiTexture() を追加しました。
- シーングラフのサンプルを更新しました:rhiunderqmlを追加し、レガシーなOpenGL専用のfboitemのサンプルを、新しいポータブルなrhitextureitemのサンプルに置き換え、customrendernodeのサンプルを更新しました。これらは、Qt Quick シーンをカスタム低レベル 2D/3D レンダリングで拡張する 3 つの方法を示しています (3 つのアプローチとは: アンダーレイ/オーバーレイ、テクスチャへのレンダリングに裏打ちされたカスタム アイテム、QSGRenderNode を使用したカスタム アイテム)。
- レンダリング前にパスを自動的に簡略化する Path::simplified プロパティを追加しました。これはQPainterPath::simplified() 関数を反映しています。
- QQuickWindow'のレンダリングに GPU タイムスタンプを収集するサポートを追加しました。QQuickGraphicsConfiguration のsetTimestamps() または対応する環境変数で有効にすると、
qt.scenegraph.time.renderloop
のようなロギングカテゴリを有効にしたときに出力されるデバッグ出力に GPU 側のタイミングが表示され、Qt Quick 3D のDebugView 項目で CPU 側のタイミングを補完します。これは現在、Direct 3D 11、Metal、および Vulkan でサポートされています(基礎となる Vulkan 実装がタイムスタンプクエリをサポートしていると仮定して)。残りの3D APIのサポートは、将来のリリースで導入される予定です。
Qt Quick Controls モジュール
- SpinBox にlive プロパティを追加。これは、ユーザーがdisplayText を編集したときにvalue を更新するかどうかを制御します。
- Dial にwrapped シグナルを追加。これは、ダイアルがラップアラウンドしたとき、つまり最大値を超えて最小値になったとき、またはその逆のときに発せられる。
- Dial にstartAngle とendAngle プロパティを追加しました。これらのプロパティは、ダイヤルの開始角度と終了角度を度単位で制御します。
Qt Quick Layouts モジュール
- レスポンシブレイアウトを書くためのヘルパーアイテムLayoutItemProxy を追加しました。
- uniformCellSizes 、uniformCellSizes 、uniformCellWidths 、uniformCellHeights プロパティを各レイアウトタイプに追加しました。
- StackLayout 現在のインデックス以下のインデックスにアイテムが挿入または削除された場合、 を更新するようになりました。currentIndex
Qt Quick Shapesモジュール
- 実験的な曲線レンダリングバックエンドを追加しました。このバックエンドは、デフォルトのジオメトリレンダラよりも高品質で曲線をレンダリングし、MSAAを使用せずにアンチエイリアスを適用します。これはShape::preferredRendererType プロパティで選択できます。
Qt Quick 3D モジュール
- ProceduralTextureData というTextureData をプロシージャルに作成する QML API を追加しました。これまでは、QQuick3DTextureData をサブクラス化することで C++ 経由でのみ可能でした。
- ProceduralMesh というメッシュ形状を手続き的に作成する QML API を追加しました。これまでは、QQuick3DGeometry をサブクラス化することによって、C++を介してのみ可能でした。
- PLYファイルをインポートできるようになりました。
- QQuick3DTextureData による 3D テクスチャ作成のサポートを追加しました。
- レンダラー拡張の初期サポートを追加しました。これは、追加パスの追加と、ビルトインレンダーパスのカスタマイズを可能にする最初のステップです。View3D には、QQuick3DRenderExtension サブクラスの配列を受け取る extensions という新しいプロパティがあります。これは、QQuick3DExtensionHelpers のヘルパー関数を使用してさらにサポートされます。
Qt SQL モジュール
- Mimer SQL用のプラグインが追加されました。
- MySQL/MariaDB に新しい接続オプション MYSQL_OPT_PROTOCOL、MYSQL_SHARED_MEMORY_BASE_NAME、MYSQL_OPT_TLS_VERSION、MYSQL_OPT_SSL_MODE が追加されました。
- ODBCプラグインが、すべてのネイティブ・エラー・コードをQSqlError
- QSqlQuery boundValueName()/boundValueNames() 関数が追加されました。
Qt TextToSpeech モジュール
QTextToSpeech クラスは、すべてのエンジンで利用可能な、さらにいくつかのトリックを学びました:
- アプリケーションは、enqueue を介して、合成エンジンに複数のテキスト・チャンクを追加できる。
- newaboutToSynthesize シグナルは、テキストのチャンクが合成される直前に発せられます。
- findVoices のメンバ関数を使えば、エンジンが提供する音声の中から条件を指定して選択することが簡単にできます。QML コードではさらに、VoiceSelector タイプをアタッチ・プロパティとして使用できます。
すべての新機能がすべてのエンジンで利用できるわけではありません。アプリケーションは、新しいCapabilities フラグとengineCapabilities プロパティを使用して、現在使用しているエンジンが以下の新機能のどれをサポートしているかを確認できます:
- エンジンにSynthesize 機能がある場合、QTextToSpeech はテキストを PCM データに合成できるようになりました。synthesize 関数は、合成時に PCM データのチャンクを受け取る callable で使用できます。
- エンジンにWordByWordProgress 機能がある場合、QTextToSpeech は、現在のテキストのチャンクの各単語が発話されるたびに、sayingWord シグナルを発信します。
Qt WebEngine モジュール
- QWebEngineLoadingInfo にレスポンス・ヘッダを追加。
- QWebEngineUrlRequestJob にレスポンス・ヘッダを追加できるようにした。
- カスタム url スキーム用の HTML5 Fetch API を有効にするためのQWebEngineUrlScheme::FetchApiAllowed フラグを追加。
- qWebEngineGetDomainAndRegistryChromium/QtWebEngine が認識する実効トップレベルドメインを読み込む () 関数を追加。
- QWebEngineSettings::DisableReadingFromCanvas 設定を追加し、フィンガープリンティングから保護するためにキャンバスの読み取りを無効にしました。
Qt Widgets モジュール
- QWidget 新しい setTabOrder() オーバーロードが追加され、イニシャライザーリストを受け取り、1 回の呼び出しでチェーン全体を設定できるようになりました。
- QMessageBox::Option は、ネイティブ・メッセージ・ボックスを使用するかどうかを各メッセージ・ボックスで制御する手段を提供します。
プラットフォームの変更
デスクトップ・プラットフォーム
macOS
- ユーザープロジェクトや Qt for macOS 自体のビルドに、少なくとも CMake バージョン 3.21.1 が必要になりました。
- QMessageBox::setCheckBoxネイティブメッセージボックスを使用する場合、() が尊重されるようになりました。
- QFileDialog 権限ダイアログが不必要にトリガーされることがなくなりました。
モバイルプラットフォーム
アンドロイド
- QDesktopServices::openUrl() を使用する際の FileProvider サポートを追加。
- デフォルトで AndroidX を追加(FileProvider の依存関係)。
- アンドロイド固有のターゲットプロパティにQTP0002CMake ポリシーを導入。
- Android でサポートされるサンプルのリストを更新。
- Android 13を最大サポートバージョンとした。
- Gradleをバージョン8.3.0に更新。
- QFileDialog 選択された名前フィルターだけでなく、提供されたすべての名前フィルターが有効になるようにした。
- Android ターゲットの SDK レベルを 33 に更新し、2023 年の Play Store の要件に合わせました。
iOS
- レンダリングと入力をマスクするためのQWindow::setMask() のサポートを追加。
- QWindows に UIViews を埋め込むための、外部ウィンドウのサポートを追加。
組み込みプラットフォーム
Boot to Qt
- Yocto 4.2のサポートを追加しました。
- ターゲットハードウェアのサポートレベルを更新しました:
- NXP i.MX 93 ボードの Tier 1 サポートが追加されました。
- Jetson AGX XavierボードのTier 1サポートを追加。
- NXP i.MX 8QuadXPlusボードのTier 3サポートが追加されました。
- Toradex Apalis iMX8 ボードの Tier 3 サポートを追加。
- ToradexとSTのターゲットが最新のYocto LTSバージョン(kirkstone)を使用するようになった。
© 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.