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ファイルを手動で記述する場合、fileXMLノードのempty属性をtrueに設定することで、同様の効果を得ることができます。 - QFileInfo readSymLink() メンバー関数が追加され、生のパスを返すようになりました。また、タイムスタンプに関連する関数には、 を受け取る新しいオーバーロードが追加されました。QTimeZone
- QProcess::UnixProcessParameters 構造体とQProcess::UnixProcessFlag 列挙型は、新しいQProcess::setUnixProcessParameters()メンバ関数で使用して、不要なファイルディスクリプタの閉じなど、子プロセスのUnix固有の設定やパラメータを変更することができます。
- 新しい `QNativeIpcKey ` クラスは、`QSharedMemory ` および `QSystemSemaphore` で使用されるネイティブキーを保持しており、Apple プラットフォーム上のサンドボックス化されたアプリケーションに対するサポートを強化しています。詳細については、「ネイティブ IPC キー」を参照してください。
- 時間範囲を扱うほとんどの Qt API は、
std::chronoの関連するデータ型に移植されました。 - QXmlStreamReader::hasStandaloneDeclaration() は、ドキュメントに明示的なスタンドアロン宣言があるかどうかを報告します。
Qt GRPC モジュール
- QGrpcChannelOptions およびQGrpcCallOptions が追加されました。これらは、チャネルや呼び出しにオプションを渡すための新しいメソッドです。
- 呼び出しに追加のメタデータを渡すために、QGrpcMetadata が追加されました。
- 自動生成された QtGRPC クラスに対する QML タイプのサポートを統合しました。
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 ドキュメントセットの一部としてドキュメントは提供されていませんでした。 現在は、これらが QPA (QPlatform*) クラスと同様に扱われています。つまり、これらは、パブリックな 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 モジュール
- Map アイテムのレンダリングがより正確に行われるようになりました。これには、地球儀を周回するアイテムや穴を含むアイテムも含まれます。
- マップアイテムは、異なる参照面を使用してレンダリングできるようになりました。QLocation::ReferenceSurface 列挙型には、
MapおよびGlobeというオプションが用意されており、アイテムタイプのreferenceSurface プロパティと組み合わせて使用することで、アイテムを平面のマップ上でレンダリングするか、地球儀の曲率に従ってレンダリングするかを制御できます。 - Shift キーを押しながらマウスホイールを操作すると「bearing 」を変更でき、Ctrl キーを押しながら操作すると「tilt 」を変更できます。
Qt Multimedia モジュール
- Qt Multimedia ライブラリは、オーディオやビデオの権限をリクエストしなくなりましたが、それらが提供されているかどうかのみを確認します。クライアントアプリケーションは、C++ またはQML権限 API を使用して権限をリクエストする必要があります。
- 新しい `QWindowCapture ` クラスでは、QMediaCaptureSession 内で個々のデスクトップアプリケーションウィンドウの動画をキャプチャする機能が追加されました。録画された動画は、QMediaRecorder やQVideoWidget など、あらゆる種類の動画出力先に送信できます。ウィンドウのキャプチャは、FFmpeg バックエンドでのみサポートされています。
- QMediaRecorder が拡張され、動画の画質、解像度、ビットレートをより細かく制御できるプロパティが追加されました。
Qt PDF モジュール
- 新しいQPdfLinkModel クラスは、指定されたページ上のリンクのジオメトリと宛先を提供します。
- QPdfDocument::pageModel() は、Qt::DecorationRole を実装して、オンデマンドでページのサムネイルをレンダリングします。
- 新しい `QPdfPageSelector ` クラスは、ウィジェットベースの PDF ビューアでページを選択するための、QSpinBox の特殊なクラスです。
Qt Positioning モジュール
- Qt Positioning ライブラリは、位置情報の権限を要求することはなくなり、権限が提供されているかどうかを確認するのみとなりました。クライアントアプリケーションは、C++ またはQML権限 API を使用して権限を要求する必要があります。
Qt Protobuf モジュール
- *.proto スキーマの一部として、特定のQt Core およびQt GUI タイプが使用可能になりました。
- 自動生成されたQProtobufMessage クラスに対するQML型のサポートが統合されました。
- 自動生成されたQProtobufMessage クラスに対して、暗黙的に共有されるデータへの移行が行われました。これにより、QML コンテキストから、多くのコピーを作成することなく、値単位でメッセージ型にアクセスできるようになりました。
- google.protobuf.Any型に対するQt Protobuf の Well-Known Types サポートが追加されました。
- protobuf のユニオンに似た型であり、値を含まなくてもよい「oneof」型のサポートを統合しました。
Qt Bluetooth モジュール
- Qt Bluetooth ライブラリは、Bluetooth 権限を要求しなくなりましたが、権限が与えられているかどうかのみを確認するようになりました。クライアントアプリケーションは、C++ またはQML権限 API を使用して権限を要求する必要があります。
- Qt は、quint128 としてネイティブな 128 ビットの unsigned int 型を提供するようになりました。これをサポートするプラットフォームでは、QBluetoothUuid(quint128) コンストラクタおよびQBluetoothUuid::toUInt128() メソッドは、以前の Qt バージョンで使用されていたカスタム構造体の代わりに、この型を使用するようになりました。 コード内で quint128 を不透明型として扱う限り、この変更はソースおよびバイナリ互換ですが、問題が発生した場合は、QUuid::Id128Bytes を受け取る新しいオーバーロードの使用を検討してください。128ビット int 型をサポートしていないプラットフォーム(MSVCなど)では、引き続きQt Bluetooth のカスタム構造体が使用されます。
Qt Qml モジュール
- QML 経由でのアプリケーション権限の管理機能が追加されました。Qt Qml コアモジュールは、クロスプラットフォームで権限の確認や要求に使用できる一連の権限型を通じて、Qt C++のアプリケーション権限機能をQML に公開しています。詳細については、「QML アプリケーション権限」を参照してください。
- XMLHttpRequest オブジェクトは、最新のブラウザに近づけるため、さらに 2 つの機能が追加されました。 リダイレクトが発生したかどうかを確認するために使用できる`responseURL`プロパティが追加されました。同様に、`overrideMimeType()`メソッドも追加され、これにより XMLHttpRequest オブジェクトは、レスポンスの `Content-Type` ヘッダーに指定されている値ではなく、特定の MIME タイプに基づいてレスポンスを解析できるようになりました。
- QML Language Serverは、「定義へ移動」および「使用箇所を検索」機能の初期サポートを実現しました。また、ドキュメントの完全な書式設定もサポートしています。
- qmllint をプラグインで拡張できるようになりました。プラグイン API は現在、テクニカルプレビュー段階にあります。
Qt Quick モジュール
- フォント内の OpenType 機能に直接アクセスするための `font.features ` プロパティが追加されました。
- TableView selectionMode プロパティがあり、1 つのセルまたは複数のセルを選択できるかどうかを制御します。
- TreeView rootIndex プロパティを持ち、モデルからサブツリーのみを表示します。
- AnimatedImage sourceSize プロパティをサポートするようになりました。
- 環境変数 `
QT_QUICK_FLICKABLE_WHEEL_DECELERATION` を使用すると、「クリック式」ホイールマウスでのスクロール後の減速をカスタマイズできます。 デフォルトでは、スクロール距離が「クリック」数に比例するように、加速度は無効になっています(プラットフォームが独自の加速度機能を提供している場合を除く)。ただし、15000 未満の値を設定することで、以前の動作に戻すことができます。flickDeceleration プロパティは、タッチフリックにのみ適用されるようになりました。 - ほとんどのプロパティはFINAL となり、同じ名前で新しいプロパティを宣言しても、それらが上書きされることはなくなりました。
FINALのプロパティが上書きされた場合、警告が出力されます。予期しない動作の変化を避けるため、ユーザーにはそのようなプロパティの名前を変更することを推奨します。 - QQuickWindow 、QQuickRenderControl 、およびQSGTexture に、QRhi に関連する多数の関数が追加され、公開されました。画面上またはオフスクリーンのQt Quick レンダリングで使用されるQRhi 、QRhiSwapChain 、またはQRhiCommandBuffer の照会が簡素化されました。以前はQRhi*クラスに依存していたためドキュメントから非表示となっていた一部の関数が公開されました。QQuickWindow にcreateTextureFromRhiTexture()が追加され、createTextureFromImage()の対応関数として機能します。
- シーングラフのサンプルを更新しました。rhiunderqml を追加し、レガシーで OpenGL 専用の fboitem サンプルを、新しいポータブルなrhitextureitem サンプルに置き換え、customrendernode サンプルも更新しました。 これらを合わせて、Qt Quick シーンをカスタムな低レベルの2D/3Dレンダリングで拡張する3つの方法(アンダーレイ/オーバーレイ、テクスチャへのレンダリングをバックエンドとするカスタムアイテム、QSGRenderNode を使用したカスタムアイテム)を示しています。
- レンダリング前にパスを自動的に簡略化するための `Path::simplified` プロパティを追加しました。これは `QPainterPath::simplified()` 関数を反映したものです。
- QQuickWindow のレンダリングにおけるGPUタイムスタンプの収集機能を追加しました。QQuickGraphicsConfiguration のsetTimestamps()または対応する環境変数によって有効化されると、
qt.scenegraph.time.renderloopなどのロギングカテゴリを有効にした際に表示されるデバッグ出力や、Qt Quick 3DのDebugView 項目に、GPU側のタイミング情報が表示され、CPU側のタイミング情報を補完します。 これは現在、Direct 3D 11、Metal、および Vulkan(基盤となる Vulkan 実装がタイムスタンプクエリをサポートしている場合)でサポートされています。その他の 3D API への対応は、今後のリリースで導入される予定です。
Qt Quick Controls モジュール
- SpinBox にlive プロパティを追加しました。これは、ユーザーがdisplayText を編集した際に、value が更新されるかどうかを制御します。
- Dialにwrapped シグナルを追加しました。これは、ダイヤルがラップ(最大値を超えて最小値に達する、またはその逆)したときに発火します。
- Dial にstartAngle およびendAngle プロパティが追加されました。これらのプロパティは、ダイアルの開始角度と終了角度を度単位で制御します。
Qt Quick レイアウトモジュール
- レスポンシブレイアウトを作成するためのヘルパーアイテム「LayoutItemProxy 」を追加しました(テクノロジープレビュー)。
- 各レイアウトタイプに適用可能なuniformCellSizes 、uniformCellSizes 、uniformCellWidths 、およびuniformCellHeights プロパティが追加されました(Technology Preview)。
- StackLayout 現在のインデックス以下でアイテムが挿入または削除された場合、currentIndex が更新されるようになりました。
Qt Quick Shapes モジュール
- 実験的な曲線レンダリングバックエンドが追加されました。これは、デフォルトのジオメトリレンダラーよりも高品質で曲線をレンダリングし、MSAAを使用せずにアンチエイリアシングを適用します。Shape::preferredRendererType プロパティを使用して選択できます。
Qt Quick 3D モジュール
- TextureData を手続き的に生成するための QML API(ProceduralTextureData )が追加されました。以前は、QQuick3DTextureData をサブクラス化することで C++ 経由でのみ可能でした。
- メッシュジオメトリをプロシージャルに作成するための QML API「ProceduralMesh 」が追加されました。以前は、C++ を使用してQQuick3DGeometry をサブクラス化することでしか実現できませんでした。
- PLYファイルのインポートが可能になりました。
- QQuick3DTextureData を使用した 3D テクスチャの作成機能をサポートしました。
- Renderer Extensions の初期サポートが追加されました。これは、追加のパスを追加したり、組み込みのレンダリングパスをカスタマイズしたりできるようにするための第一歩です。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 2つの新しい関数 boundValueName()/boundValueNames() が追加されました
Qt TextToSpeech モジュール
QTextToSpeech クラスに、すべてのエンジンで利用可能ないくつかの新機能が追加されました:
- アプリケーションは、enqueue を通じて、合成エンジンに複数のテキストチャンクを追加できるようになりました。
- 新しいaboutToSynthesize シグナルは、テキストのチャンクが合成される直前に発火します。
- findVoices メンバー関数を使用することで、一連の基準に基づいてエンジンが提供する音声の中から1つを選択することが容易になりました。さらに、QML コードでは、VoiceSelector 型をアタッチドプロパティとして使用できます。
すべてのエンジンで、すべての新機能が利用可能というわけではありません。アプリケーションは、新しいCapabilities フラグとengineCapabilities プロパティを使用して、現在使用中のエンジンが以下の新機能のうちどれをサポートしているかを確認できます。
- エンジンにSynthesize 機能がある場合、QTextToSpeech はテキストをPCMデータに合成できるようになりました。synthesize 関数は、合成されたPCMデータのチャンクを受け取るコールバックとともに使用できます。
- エンジンがWordByWordProgress 機能を備えている場合、QTextToSpeech は、現在のテキストチャンク内の各単語が発話されるたびに、sayingWord シグナルを出力します。
Qt WebEngine モジュール
- QWebEngineLoadingInfo にレスポンスヘッダーが追加されました。
- QWebEngineUrlRequestJob にレスポンスヘッダーを追加できるようになりました。
- カスタム URL スキームで HTML5 Fetch API を有効にするためのQWebEngineUrlScheme::FetchApiAllowed フラグが追加されました。
- qWebEngineGetDomainAndRegistry() 関数を追加し、Chromium/QtWebEngine が認識する有効なトップレベルドメインを読み取れるようにしました。
- フィンガープリント対策として、キャンバスの読み取りを無効にする設定「QWebEngineSettings::DisableReadingFromCanvas」を追加しました。
Qt Widgets モジュール
- QWidget には、初期化リストを受け取る新しい setTabOrder() オーバーロードが追加され、1回の呼び出しでチェーン全体を設定できるようになりました。
- QMessageBox::Option は、メッセージボックスごとに、ネイティブのメッセージボックスを使用するかどうかを制御する手段を提供します。
プラットフォームの変更
デスクトッププラットフォーム
macOS
- ユーザープロジェクトや Qt for macOS 自体のビルドには、CMake バージョン 3.21.1 以上が必要になりました。
- QMessageBox::setCheckBoxネイティブのメッセージボックスを使用する場合、() が反映されるようになりました。
- QFileDialog が、不必要に権限ダイアログを表示しなくなりました。
モバイルプラットフォーム
Android
- QDesktopServices::openUrl() を使用する際、FileProvider のサポートが追加されました。
- デフォルトで AndroidX が追加されました(FileProvider の依存関係)。
- Android 固有のターゲットプロパティに対するQTP0002CMake ポリシーを導入しました。
- Android でサポートされるサンプル一覧を更新しました。
- サポートされる最大バージョンを Android 13 に変更しました。
- Gradle をバージョン 8.3.0 に更新しました。
- QFileDialog 選択されたものだけでなく、指定されたすべての名前フィルターが適用されるようになりました。
- 2023年のPlayストアの要件に合わせて、AndroidターゲットのSDKレベルを33に更新しました。
iOS
- QWindow::setMask() によるレンダリングおよび入力のマスキングに対応しました。
- 外部ウィンドウのサポートを追加し、UIView を QWindows に埋め込めるようになりました。
組み込みプラットフォーム
Boot to Qt
- Yocto 4.2 (mickledore) のサポートが追加されました。
- ターゲットハードウェアのサポートレベルが更新され、新たに以下のボードがサポート対象となりました:
- 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)が使用されるようになりました。
© 2026 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.