Qt 6.4 の新機能
Qt 6.4 の新しいモジュールと復活したモジュール
Qt 6.4 では以下のモジュールが追加されました:
- Qt HTTP Server- Qt アプリケーションに HTTP Server を組み込むためのモジュールです。このモジュールはテクニカルプレビューであり、API と ABI の安定性は保証されていません。
- Qt Quick 3D Physics- 3D に物理シミュレーション機能を追加する高レベル QML モジュールです。Qt Quick
Qt 6.4 では Qt 5 から再導入されています。 Qt TextToSpeechこのモジュールは Qt 6.3 にはありませんでした。CMake ビルドシステムを使用し、Qt 6 で動作するようになりました。
各モジュールの変更点についての詳細はQt 6 における Qt モジュールの変更点にあります。
Qt 6.4 の新機能
Qt Core モジュール
- QLatin1String の別名としてQLatin1StringView を追加しました。これは、Latin-1 文字列ビューを参照する際に推奨される名前です。
QLatin1StringView(const char *, qsizetype)
とQLatin1StringView(const char *, const char *)
のコンストラクタが非明示的になりました。- Qt::Literals::StringLiterals 名前空間に Latin-1 文字列および char リテラルを作成するためのリテラル演算子
_L1
を追加しました。 - Qt::Literals::StringLiterals 名前空間に、それぞれQString とQByteArray リテラルを作成するためのリテラル演算子
_s
と_ba
を追加した。_s
と_ba
を使用するため、_qs
と_qba
を非推奨とした。 - QString::count()とQByteArray::count()は、同名のアルゴリズム・オーバーロードとの混同を避けるため、パラメータを取らない非推奨。これらは
size()
またはlength()
メソッドで置き換えることができます。 - QStringEncoder Qt が ICU サポートを有効にしてビルドされた場合に、ICU がサポートするすべてのコーデックと をサポートするようになりました。QStringDecoder
- Android と JNI 開発用のクラス、QJniObject とQJniEnvironment で、callMethod 、findMethod と同様のメソッドにオーバーロードが追加されました。シグネチャ文字列を指定せずにJava関数を呼び出したり、ネイティブ・メソッドを登録したりできるようになりました。
- 新しいテンプレート関数QJniObject::construct() は、型やシグニチャ文字列を指定せずに、C++ から Java クラスのインスタンス化を可能にします。
- QByteArray インスタンスで fromPercentEncoding() 静的メソッドを呼び出す代わりに、 percentDecoded() インスタンス・メソッドが追加されました。
- QTextStream char16_t の入出力がサポートされました。
- QStringView localeAwareCompare() メソッドが追加され、指定した部分文字列の出現回数を count() できるようになりました。
- QDate 利用可能な場合は、様々な std::chrono 年月日構造型から構築できるようになり、利用可能な場合は、std::chrono::days を取る addDuration() を持つようになりました。
- QDateTime 同様に、addDuration(std::chrono::milliseconds)が追加され、同じ型の加算や減算の演算、 の差分値が返され、時間の瞬間を記述する様々な std::chrono 型を取る静的な擬似コンストラクタがいくつか追加されました。QDateTime
- QTimeZone::fromStdTimeZonePtr(const std::chrono::time_zone *) を追加しました。
- QCalendar名前によるコンストラクタがQAnyStringView を受け付けるようになりました。
Qt GUI モジュール
- QTextDocumentFragment::toMarkdown(),QTextDocumentFragment::fromMarkdown(),QTextCursor::insertMarkdown() を追加。
Qt Quick モジュール
- TableView にいくつかの新しいプロパティと関数が追加され、キーボードナビゲーションと選択、行と列の選択、アニメーション、サブセルの位置決めなどのサポートが改善されました。
- TreeView 選択範囲をサポートするようになり、ツリー内のノードを再帰的に展開したり折りたたんだりするための、より広範なAPIが追加されました。
- QQuickWidget OpenGLに加えて、サポートされているすべての3DグラフィックスAPI(Vulkan、Metal、Direct3D 11)で機能するようになりました。 を使用する場合、アプリケーションは OpenGL でのレンダリングを強制する必要がなくなりました。QQuickWidget
- カスタムマテリアルで使用されるシェーダーで、結合されたイメージサンプラーの配列のサポートが追加されました。これは、新しい関数QSGMaterialShader::combinedImageSamplerCount() と、QSGMaterialShader::updateSampledImage() の既存の引数
texture
の拡張セマンティクスによってサポートされます。 - QSGMaterialShader::GraphicsPipelineState で、ポリゴンのラスタライズモードを
solid
からline
に変更できるようになりました。 - ShaderEffectSource.format と は以前の Qt 6 リリースでは役に立たず、レガシーな値は実際には無視されていました。特に、RGBA8の代わりに浮動小数点(FP16またはFP32)テクスチャを要求できるようになりました。layer.format
- QQuickRenderTarget::fromPaintDevice() を追加し、
software
バックエンドを使用してQQuickWindow からの出力をリダイレクトできるようにしました。 - QQuickRenderTarget にオーバーロードを追加し、テクスチャやイメージオブジェクトのネイティブフォーマットを指定できるようにしました。これは、RGBA8ではないネイティブ・テクスチャを扱う必要がある、いくつかの高度なユースケースに関連します。Qt のレンダリングインフラストラクチャでサポートされているネイティブフォーマットのみが受け入れられることに注意してください。
- QQuickRenderTarget にsetMirrorVertically() を追加しました。これにより、3D API ベースのレンダリングをテクスチャにリダイレクトするときに、Qt Quick レンダラーに行列を変更して、垂直方向に反転した結果を得るように要求できるようになりました。
- Qt Quick 主要なグラフィックデバイスが Qt と互換性がない場合、手動で環境変数を設定しなくても、windows が Direct 3D (WARP) のソフトウェアラスタライゼーションプラットフォームの使用を試みるようになりました。
- Qt Quick のシーングラフの
threaded
レンダリングループに、壊れた vsync ベースのスロットリングを認識するための簡単なヒューリスティックを追加しました。レンダリングスレッドをブロックすることなく、フレームのレンダリング/表示が速すぎる場合、アニメーションを実行する通常のタイマーベースのアプローチに自動的に切り替わり、QMLアニメーションの速すぎる実行を防ぐようになりました。 - カスタムアニメーション用にFrameAnimation が追加されました。アニメーションフレームと同期してカスタムスクリプトを実行できるようになりました。
Qt Quick Controls モジュール
- Tech Previewとして、iOS用の新しいネイティブスタイル、iOS Styleを追加。
- TreeViewDelegate TreeView にカレント、セレクテッド、ハイライトの3つのプロパティを追加。
Qt Quick Dialogs モジュール
- ColorDialog を追加。これは、サポートしているプラットフォームではネイティブ・ダイアログ、その他のプラットフォームでは非ネイティブのQt Quick ダイアログです。
非ネイティブダイアログはすべての非ネイティブスタイルをサポートします:ベーシック、フュージョン、イマジン、マテリアル、ユニバーサル。
Qt Widgets モジュール
- QFormLayout 新しい () と () メンバ関数が追加され、インデックス、入力ウィジェット、行のレイアウトによる行の非表示と表示ができるオーバーロードが追加されました。isRowVisible setRowVisible
- QKeySequenceEdit には、新しい プロパティがあります。このプロパティを使用して、ユーザーが編集をクリアできるクリアボタンをウィジェットに表示するかどうかを制御します。clearButtonEnabled
- QWizard には新しいスロット、 があり、アプリケーションは現在のページとターゲットの間のページを訪問することなく、ページに移動することができます。setCurrentId
Qt Network モジュール
- QSslServer を追加しました。これにより、TLSのみで通信するサーバーの作成が簡単になりました。
- QNetworkInformation loadBackendByFeatures(Features) と loadBackendByName( ) が追加されました。これは、対応するオーバーロード load(Features/ ) 関数を最終的に置き換えるためのもので、現在は非推奨とマークされています。QStringViewQStringView
Qt Test モジュール
- QTestEventLoop::enterLoopMSecs() は、タイムアウトが 1 秒未満の場合に PreciseTimer を使用するようになりました。
- カスタムの QTest::compare() 実装では、QTest::compare_helper() の呼び出しを修正し、非推奨となった古いオーバーロードではなく、新しい 2 つのオーバーロードのいずれかを使用するようにしました(チェックが実際に失敗した場合にのみ、失敗レポートの値を表す文字列を生成するため)。
- QAbstractItemModelTester::setUseFetchMore() を追加した。
- 新しいマクロ QCOMPARE_{EQ,NE,GT,GE,LT,LE}()は、QCOMPARE()と同様のレポートによる比較をサポートします。EQの方は、QCOMPARE()のカスタマイズなしで、正確な比較を行います。これらには、通常の QTRY_COMPARE_*() と QTRY_COMPARE_*_WITH_TIMEOUT() が付属しています。
Qt QMLモジュール
- QML言語
- カスタム値型を名前で登録できるようになりました。つまり、QML_VALUE_TYPE の引数は無視されなくなりました。小文字でなければなりません。一度登録すれば、QMLで独自の値型のプロパティを宣言することができます。
- QMLでは、どんな名前の値型でもリストに格納できるようになりました。例えばQMLのlist<rect>はC++のQList<QRectF>のようなものです。これにより、このようなプロパティにvarを使ったり、その要素をオブジェクトにラップしたりする必要がなくなりました。
- 新しく追加されたプラグマ ComponentBehavior では、QMLファイルで定義されたコン ポーネントを、その作成時のコンテキスト以外で使用できるかどうかを指定する ことができます。もしそうでない場合(pragma ComponentBehavior: Bound)、Qt Quick Compiler 、コードを最適化することができます。
- QMLタイプコンパイラ (qmltc)
- 拡張されたQML言語カバレッジ
- QML スクリプトコンパイラ (qmlsc, qmlcachegen)
- 値型のリストに対する様々な操作が C++ にコンパイルされるようになりました。
- デッドコードやデッドストアがより積極的に最適化されるようになりました。
- 型変換は、値が読み込まれる場所ではなく、値が書き込まれる場所で行われるようになりました。値が複数回読み込まれる場合、この方が高速です。
- QML リンター (qmllint)
- QML Language Server (qmlls)
- 補完のサポートを追加
- いくつかのリンターの警告/ヒントに対するコードアクションの修正を追加
- 実行ファイルを libexec に移動
- CMake API をクリーンアップ
- qt_target_compile_qml_to_cpp() はQML タイプコンパイラを呼び出すために使われていましたが、非推奨となりました。この機能はqt_add_qml_module()に統合されました。
Qt Quick 3D モジュール
- ライトマップベイクサポートのプレビューを追加しました。これは、レイトレーシングを使用して事前に生成されたライトマップによる静的グローバルイルミネーションソリューションを提供します。詳細はライトマップとグローバルイルミネーションを参照してください。
- メタルネス/ラフネスの代わりにスペキュラ/グロッシー ワークフローを使用できるように、SpecularGlossyMaterial を追加しました。
- ライン状のスプライトパーティクルを作成できるLineParticle3D タイプを追加。
- モデルが反射プローブによってレンダリングされるかどうか、また反射で見えるかどうかを制御するModel.castsReflection プロパティを追加。同じプロパティはsprite particles にも導入されています。
- ReflectionProbe.boxOffset プロパティを追加し、キャプチャポイントの位置に影響を与えることなく、プローブの位置に対してボックスを移動できるようにしました。
- プローブボックスを視覚化する立方体を表示するためのReflectionProbe.debugView プロパティを追加しました。
- 画像ファイルから高さフィールドジオメトリを作成できるように、HeightFieldGeometry を追加。
- CubeMapTexture を追加し、シェーダーでキューブ マップ テクスチャを使用するカスタム マテリアルとポスト処理エフェクトを有効にしました。入力は、6面すべての画像データを含む
.ktx
コンテナか、6つの個別の画像ファイルです。 - ライトプローブの代わりにキューブマップからスカイボックスをレンダリングするためのサポートを追加しました。これは、背景モードSceneEnvironment.SkyBoxCubeMap を設定することで要求できます。
- HDR ライトプローブまたはスカイボックスのテクスチャをプロシージャ ルに生成するためのProceduralSkyTextureData を追加しました。
- ポイントライトとスポットライトのシャドウレンダリングを改善。
- View3D にrenderFormat プロパティを追加し、View3D が (デフォルトの) Offscreen レンダー モードを使用しているときに、バッキング テクスチャ フォーマットを指定できるようにしました。使用可能な値はShaderEffectSource.format と同じです(これ自体も 6.4 で改訂されています)。これにより、デフォルトの RGBA8 の代わりに浮動小数点テクスチャを使用できるようになりました。
- UIP ファイルのインポートのサポートが削除されました。古いQt 3D Studio の機能からQt Quick 3D へのマッピングは、以前のリリースですでに問題がありました。そのため、Qt 6.4 では
balsam
ツールから.uip
ファイルのサポートを削除しました。
Qt 接続モジュール
- QNdefMessage はエクスポートされなくなりました。このクラスは を継承していますが、 はエクスポートされたクラスから継承されるようには設計されていません。QList QList
警告: これは後方互換性がありませんが、将来的なBCの破損を防ぐことができます。
- Qt Bluetooth では、さまざまなエラー列挙型が、パーミッションが見つからないエラーを表す新しいエラーコードで拡張されている。現在、これらのコードはAndroidとmacOS/iOSで使用されている。例としてQBluetoothLocalDevice::MissingPermissionsError 。
Qt WebEngine モジュール
- HTML5 ファイルシステムアクセス API が追加されました。QWebEngineFileSystemAccessRequest
- QWebEngineLoadingInfo エラーコード、特に HTTP エラーを改善しました。
- QWebEngineView::setPage() が既に読み込まれているページでも動作するようになりました。
- QWebEngineSettings::NavigateOnDrop を追加し、URL のドラッグ&ドロップ時にナビゲーションを無効にできるようにした。
- QWebEngineUrlRequestInfo::ResourceTypeWebSocket ウェブソケット接続の傍受を可能にするよう追加
プラットフォームの変更
WebAssembly
Qt は WebAssembly プラットフォームで完全にサポートされるようになりました。詳しくはQt for WebAssemblyのプラットフォームのドキュメントをご覧ください。
モバイルプラットフォーム
アンドロイド
- Gradle を 7.4.2 に、Android Gradle Plugin を 7.2.1 に更新しました。
- NDK を r23b (23.1.7779620) に更新。
- CMake 変数QT_ANDROID_SIGN_APKおよびQT_ANDROID_SIGN_AABを追加し、CMake から署名付きパッケージを直接ビルドできるようにした。
- Android アクセシビリティがスクロールイベントを認識するようになりました。
- Android アプリのアセット読み込み速度を改善。
組み込みプラットフォーム
Boot to Qt
- Boot to Qt スタックが更新され、Yocto 4.0.3 (kirkstone) を使うようになりました。
- NXP i.MX8M Plus LPDDR4 EVK が新しいリファレンスデバイスとして追加されました。
QNX
- のサポートを追加 Qt Multimedia.
WebOS
- Qt 6.4 が LG webOS OSE 2.18.0(Qt for webOS) で動作することが確認されました。
API 変更点のリスト
これらのページでは、Qt 6.4 における API の変更点の概要を説明します:
© 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.