Qt 6.8の新機能
Qt 6.8 で追加・復活したモジュール
Qt 6.8 では、以下のモジュールとツールが追加されました:
- SVGドキュメントからQMLコードを生成するために使用されるsvgtoqmlツールは、テクニカルプレビュー段階を終了しました。このツールは、
SVG Tiny 1.2プロファイルの静的サブセットをサポートしています。 - The Qt Graphs, Qt HTTP Server, Qt Protobuf、および Qt GRPC モジュールはすべて、テクニカルプレビュー段階から正式リリースされました。
- xml-ph-0000@deepl.internalシーン内でSVGドキュメントをスケーラブルベクターグラフィックスとして表示するための Qt Quick Vector ImageQt Quick シーン内でSVGドキュメントをスケーラブルベクターグラフィックスとして表示するためのモジュールが追加されました。
Qt 6.8 で削除されたモジュール
以下のモジュールは非推奨となりました。新しいコードでの使用は強く推奨しません。
Qt 3D モジュール
この Qt 3D モジュールは非推奨となりました。Qt 3D は引き続きライセンス対象ソフトウェアの一部であり、Qtプロジェクトの一部でもあります。このモジュールは、今後のリリースにおいても他のモジュールと統合され続けます。 重大なバグやセキュリティ上の脆弱性については、KDAB のモジュールメンテナーが対応します。新機能や機能拡張に関しては、ユーザーは info@kdab.com 宛てにメールで KDAB へ連絡してください。
Qt 6.8 の新機能
Qt Core モジュール
- QChronoTimer は、QTimer の代替モジュールであり、全体を通じて std::chrono の期間型を使用しています。
- QTimer::id()はQt::TimerId を返し、int型のタイマーIDの代わりに、1つの引数を取る各種メソッドの新しいオーバーロードで導入・採用されています。
- QAbstractEventDispatcher における整数ナノ秒パラメータを置き換えるため、std::chrono 期間のサポートがさらに強化されました。
- QString、QByteArray 、およびQList に resizeForOverwrite() が追加されました。
- QString、QByteArray に、
*this = sliced()と同等の slice() が追加されました。 - QString、QByteArray 、QList 、QVarLengthArray には、Standard Template Library (STL) との互換性のために max_size() が追加されました。
- QList コンテンツタイプが許容する場合、指定されたサイズまで初期化されていないエントリを用いた構築をサポートします。
- QVarLengthArray::PreallocatedSize は、Prealloc パラメータの値を返します。
- QLatin1StringMatcher::indexIn() は、QStringView を受け取れるようになりました。
- QCollatorSortKey 移動コンストラクタがサポートされるようになりました。
- QStringEncoder また、QStringDecoder は、エンコーディング名をQString として受け取れるようになりました。
- QThread isMainThread() および () が追加されました。isCurrentThread
- QThreadPool::waitForDone() は、int 単位のミリ秒の代わりにQDeadlineTimer を受け入れるようになりました。
- QDirListing ディレクトリエントリに対して STL スタイルの反復処理を提供します。
- QVersionNumber QSpan から構築できるようになりました。また、反復処理も実行できます。
- qHash() は、quint128 および qint128 を受け入れるようになりました。
- QMap::qHash() は、キーのハッシュ値を返します。
- QHash は、同等の値に対して同等のハッシュ結果を持つとマークされている場合、キーとは異なる型をハッシュできるようになりました(C++20 のみ)。これは、QString/QStringView およびQByteArray/QByteArrayView のペアで機能します。ARM プロセッサを除くすべてのシステムで、QLatin1StringView もQString およびQStringView のハッシュ処理に参加します。
- QPointF,QLineF,QRectF, およびQMarginsF は、ファジー比較とヌルチェックをサポートするようになりました。
- QT_ENABLE_STRICT_MODE_UP_TOを定義すると、さまざまな API の使用を無効にできます。どのバージョンでそれらの API が除外されるかは、ドキュメントに記載されています。
- QT_NO_QASCONSTを定義すると、qAsConst() を無効にできます。
- QT_(NO_)USE_NODISCARD_FILE_OPENを定義すると、I/O クラスの
open()メソッドにおける[[nodiscard]]を制御できます。 - QLibraryInfo::paths() は、関連するすべてのパスを返します。
- QCryptographicHash また、QMessageAuthenticationCode には、指定されたバッファ内のデータのハッシュを計算するhashInto() が追加されました。
operator<()を持つその他のQtCore 型も、C++20 でコンパイルされた場合(C++17 でもcompareThreeWay()の場合)、operator<=>()をサポートするようになりました。これらの型は、6 つの関係演算子すべて(隠しフレンドとして)と、それらがサポートしていた各混合型比較の逆演算を一貫してサポートするようになりました。Qt 6.8 では、これは以下のものに適用されます:- qfloat16
- QAnyStringView
- QByteArray
- QByteArrayView
- QCborArray
- QCborMap
- QCborValue
- QChar
- QDate
- QDateTime
- QDeadlineTimer
- QElapsedTimer
- QLatin1Char
- QLatin1StringView
- QModelIndex
- QOperatingSystemVersion
- QPersistentModelIndex
- QString
- QStringView
- QTime
- QTypeRevision
- QUrl
- QUtf8StringView
- QUuid
- QVersionNumber
- JNIシグネチャ付きでJava型を宣言するためのマクロを含むQtJniTypes 名前空間は、テクノロジープレビューの段階を脱し、ドキュメント化されました。
- QJniObject およびQJniEnvironment API の可変引数テンプレート版は、もはや「preliminary」ステータスではなく、完全にドキュメント化されています。
- 新しいQJniArray テンプレートクラスにより、C++コードからJava配列を簡単に扱うことができるようになりました。
Qt Graphs Module
- Qt Graphs は、テクニカルプレビューの段階を脱しました。
- このモジュールは 2 つのサブモジュール、 Qt Graphs およびQt Graphs Widgets に分割され、純粋な QML アプリケーションにウィジェットを含める必要がなくなりました。
- 2D および 3D グラフのテーマ設定が統一されました。GraphsTheme を参照してください。
- Qt ChartsおよびQt DataVisualization からの移行ガイドを参照してください。
Qt Graphs3D
- Bars3D およびScatter3D への透明度サポートを追加しました。
- Scene3D.primarySubViewport およびScene3D.secondarySubViewport のサポートが追加されました。
- グラフタイトルの位置をオフセットする機能が追加されました。Abstract3DAxis.titleOffset を参照してください。
- ラベルの余白のサポートを追加しました。GraphsItem3D.labelMargin を参照してください。
- シェーダーを使用したグリッドのレンダリングおよびグリッド線の幅の変更に対応しました。GraphsItem3D.gridLineType およびgraphsline.mainWidth を参照してください。
Qt Graphs2D
- AreaSeries のサポートを追加しました。
- QMLコンポーネントを使用したカスタムバーのサポートが追加されました。BarSeries.barDelegate を参照してください。
- 積み上げ棒グラフおよび積み上げパーセント棒グラフのサポートを追加しました。BarSeries.barsType を参照してください。
- 棒グラフのラベルのサポートが追加されました。BarSeries.labelsVisible を参照してください。
- 異なるシリーズに対するモデルマッパーのサポートが追加されました。XYModelMapper 、BarModelMapper 、およびPieModelMapper を参照してください。
- すべての系列に対して、LegendData のサポートを追加しました。
- 動的なスプライン系列のサポートを追加しました。
- 軸タイトルのサポートが追加されました。AbstractAxis.titleText を参照してください。
Qt GRPC モジュール
- Qt GRPC がテクニカルプレビュー段階を終了しました。
- GrpcQuick モジュールにストリーミングのサポートが追加されました。
- QGrpcInterceptor、QGrpcInterceptorManager、および QGrpcInterceptorContinuation を削除しました。
- QGrpcClientStream および QGrpcBidirStream に、クライアント側からストリームをハーフクローズするための
writesDone()メソッドが追加されました。
Qt GUI モジュール
- QStyleHints::colorScheme には、アプリケーションが明示的な Dark または Light スキームを使用してシステム設定を上書きできるようにするセッター関数が追加されました。
- QFont::ContextFontMerging を追加しました。これは、フォールバックフォントを選択する際に文字列全体を考慮に入れる新しいフォントマージアルゴリズムを有効にするために使用できます。これにより、多少のオーバーヘッドが生じる可能性がありますが、場合によってはより良い結果が得られます。
- QFont::PreferTypoLineMetrics スタイル戦略が追加されました。これにより、フォントでUSE_TYPO_METRICSフラグが手動で設定されていない場合でも、OpenType フォントのタイポグラフィ的な行メトリクスを常に優先するように設定できます。
- iOSと同様に、macOS向けにQDesktopServices のカスタムおよびhttpsURLスキームのサポートを追加しました。
- QImage::Format_CMYK8888 32 ビット CMYK 画像形式が追加されました。
- QColorSpace ICC A2B 色空間の処理のサポートが追加されました。これに伴い、グレースケールおよび CMYK 色空間の明示的なサポートも追加されました。
- QColorSpace::Bt2020 、QColorSpace::Bt2100Pq 、およびQColorSpace::Bt2100Hlg HDR 色空間のサポートが追加されました。
- QColorSpace::transformModel() は、基礎となる処理モデルを返します。
- QColorSpace::colorModel() は、その色空間がどのカラーモデル用に作成されているかを返します。
- QImage::colorTransformed() およびQImage::applyColorTransform() の 3 つの引数を持つバリアントが追加され、画像フォーマットと色空間の両方を同時に変換できるようになりました。
- QStyleHints::contextMenuTrigger は書き込み可能なプロパティであり、アプリケーションはこれを使用して、コンテキストメニューをボタンの押下時と離した時のどちらで開くかを制御できます。
- Qt アクセシビリティインターフェースは、attributes をキー/値のペアとしてクライアントに報告できるようになりました。
- QAccessibleAnnouncementEvent は、支援技術によるメッセージの読み上げを要求するために、アプリケーションによって発生させることができます。
- QPageLayout::setMargins は、範囲外の余白を拒否するか、あるいはクリップするかを指定するために、オプションのOutOfBoundsPolicy パラメータを受け取れるようになりました。
- QPdfWriter ペン/塗りつぶしに対して CMYK サポートが追加されました。
- QFontDatabase 特定のスクリプトに対して、デフォルトのフォールバックフォントファミリーを上書き指定するための `addApplicationFallbackFontFamily ` が追加されました。
- QRhi におけるマルチビューレンダリングのサポートを完了しました。マルチビューは、Vulkan 1.2 を必要とせず、Vulkan 1.1 実装でもサポートされるようになりました。これは、Meta Quest 3 などの Android ベースのデバイスで特に重要です。
- QRhi において、対応可能なプラットフォームおよびAPIにおいて、マルチサンプル深度(深度/ステンシル)レンダリングを非マルチサンプル深度(深度/ステンシル)テクスチャに自動的に変換する機能を導入しました。詳細については、QRhiTextureRenderTargetDescription::setDepthResolveTexture() およびQRhi::ResolveDepthStencil を参照してください。
Qt Multimedia モジュール
- QVideoFrameInput およびQAudioBufferInput クラスを追加しました。これらは、QMediaCaptureSession を通じてQMediaRecorder にカスタムメディアデータを送信できます。
- QAudioBufferOutput クラスが追加されました。このクラスは、QMediaPlayer からデコードされたオーディオデータを受信できます。
- クラス `QAbstractVideoBuffer` を追加しました。これにより、カスタム動画データを使用して `QVideoFrame ` インスタンスを作成できるようになりました。
- QMediaRecorder QIODevice にメディア出力を書き込むことができます。
- XDG Desktop Portal 経由で ScreenCast サービスをサポートする Wayland コンポジターを使用する Linux でのQScreenCapture のサポートが追加されました。
- FFmpeg ライブラリは FFmpeg プラグインに動的にリンクされており、使用される FFmpeg 共有モジュールはQt Multimedia に同梱されています。
- iOS での FFmpeg メディアバックエンドのサポートを追加しました。
- GStreamer の最小必要バージョンを 1.20 に引き上げました。
Qt Network モジュール
- QNetworkAccessManager は、unix+http:またはlocal+http:スキームを使用して、ローカルソケット経由で HTTP リクエストを送信する機能をサポートするようになりました。
- QDnsLookup DNS over TLS の送信に対応し、DNS サーバーがデータの真正性を検証したかどうかを通知できるようになりました。
- QDnsLookup TLS アソシエーションレコードのサポートが追加されました。
- QNetworkCacheMetaData、QNetworkProxy 、QNetworkRequest 、およびQNetworkReply で、ヘッダーの取得および設定が可能になりました。
- QNetworkRequestFactory 今後のリクエストに向けて、priority およびattributes を設定できるようになりました。
- QHttpMultipart メッセージの作成を容易にするため、QFormDataPartBuilder およびQFormDataBuilder クラスが追加されました。
Qt Network Auth モジュール
- QOAuthUriSchemeReplyHandler クラスを追加しました。このクラスは、プライベート/カスタムおよび HTTPS URI スキームのリダイレクトを処理します(対応プラットフォーム:iOS、Android、macOS)。
- QOAuth2AuthorizationCodeFlow クラスに、Proof of Key Code Exchange (PKCE) のサポートを追加しました。PKCE は、認証コードの傍受攻撃を軽減するための推奨されるセキュリティ対策です。
- 複数のユーザーからのフィードバックを受け、qnetworkauthの全般的な改善を目的として、多くの問題に対処しました。これには、いくつかのバグ修正、機能改善、非推奨機能の指定、ドキュメントの追加、および導入を支援するための概要ドキュメントが含まれます。
Qt Positioning モジュール
- Qt Positioning のAndroidバックエンドは、Android 14以降において、MSL形式での高度情報を提供できるようになりました。
Qt Protobuf モジュール
- Qt Protobuf モジュールは、テクニカルプレビューから正式リリースに移行しました。
Qt Qml モジュール
- QML Language Server に新機能が追加されました:セマンティックハイライト、JavaScript 言語のサポート拡充、Quick types のスニペットサポート、ドキュメントヒント、QML ファイルの名前変更、
.qmllint.ini警告設定のサポート pragma ValueTypeBehavior: Assertableが追加されました。これにより、値型に対するasキャストを用いた適切な型チェックが可能になります。このプラグマがない場合、値型でasを使用すると、単に型をチェックするだけでなく、その型のインスタンスが生成されてしまいます。この新しい属性により、型アサーションにおいてasキャストが正しく機能するようになります。- 値型の処理が改善されました。qmllintは、文字列からよく知られた値型(
point、rect、sizeなど)を生成する際に警告を出し、適切なコンストラクタの使用を推奨するようになりました。値型はデフォルトコンストラクタを持つことができるようになり、型システムとの統合も向上しました。 - アプリケーションの応答性を向上させるため、増分ガベージコレクションが導入されました。ガベージコレクタは、実行を長時間ブロックする代わりに、複数のフレームにわたって増分的に処理を行うようになりました。これにより、特に複雑なアプリケーションにおいて、ポーズ時間が大幅に短縮され、よりスムーズなパフォーマンスが実現されます。増分ガベージコレクションには以下が含まれます:
- 長い一時停止を回避するための増分マーキングフェーズ
- メモリ回収のための増分スイープフェーズ
- 環境変数による時間制限の設定
- QJSEngine::collectGarbage一貫性を確保するため、() の動作が QML の `
gc()` メソッドと整合するようになりました。 - コンストラクタ構文を使用して、QML 内で直接構築可能な値型を作成できるようになり、
color、rect、およびユーザー定義型などの値型の初期化がよりクリーンに行えるようになりました。 - qt_add_qml_module()の動作に影響を与える 2 つの新しいCMake ポリシーが追加されました。QTP0004 は、ネストされたフォルダ構造が使用されている場合の QML モジュールの使用を容易にします。QTP0005 は、インポートや依存関係を指定する際にターゲットの使用を許可します。
Qt Quick コンパイラ
- Qmlスクリプトコンパイラは、QmlからCppへのコンパイルに関する統計情報を記録するようになりました。この情報は、プロジェクトで all_aotstats ターゲットを実行することで表示できます。
Qt Quick モジュール
- font.contextFontMerging が追加されました。これは、フォールバックフォントを選択する際にテキスト全体を考慮に入れる新しいフォントマージアルゴリズムを有効にするために使用できます。これにより多少のオーバーヘッドが生じる可能性がありますが、特定のケースではより良い結果が得られます。
- font.preferTypoLineMetrics プロパティが追加されました。これを設定すると、フォントでUSE_TYPO_METRICSフラグが手動で設定されていない場合でも、OpenType フォントのタイポグラフィ的な行メトリクスを常に優先させることができます。
- Image およびBorderImage にretainWhileLoading プロパティを追加しました。非同期で読み込まれる画像に対して
trueに設定すると、新しい画像が完全に読み込まれるまで現在の画像データが保持されます。これにより、ちらつきを防ぐことができます。 - 2D変換行列を指定するためのシンプルな関数を提供するユーティリティオブジェクト「PlanarTransform 」を追加しました。
- Shape およびPathView 向けに、オプションで角を丸めた矩形パス「PathRectangle 」が追加されました。
- ドラッグされているデータを表す画像のサイズを制御するためのDrag.imageSourceSize プロパティを追加しました。
- カスタム深度テクスチャを設定する方法として、QQuickRenderTarget::depthTexture を追加しました。
- 名前付きコンストラクタによる生成時にビュー形式を指定できるようにするため、QQuickRenderTarget::Flag 列挙子を追加しました。
- TableView columns および を、プログラム上および対話的に移動できるようになりました。rows
- すべての標準的なQt Quick アイテムおよびマテリアルが、マルチビューレンダリングに対応しました。これは、2DコンテンツがQt Quick の3D XRシーンに埋め込まれ、マルチビューレンダリングが有効になっている場合、アプリケーションに対して透過的に利用されます。マルチビューレンダリングにより、AR/VRデバイスのレンダリングパフォーマンスが向上し、消費電力が削減されます。
- QSGMaterial::viewCount() を使用することで、マルチビュー対応のカスタムマテリアル(QSGMaterial 、QSGMaterialShader )を作成できるようになりました。
- QQuickRenderTarget において、マルチビューレンダリングを使用し、Qt Quick のレンダリング結果を2Dテクスチャ配列に出力する機能が追加されました。これは、QQuickRenderTarget::fromVulkanImage()などの関数の新しいオーバーロードによって実現されており、Qt Quick 3Dで構築されたXRアプリケーション向けのマルチビューレンダリングサポートの基盤となります。
- QQuickRenderTarget において、レンダリングパスの終了時にmultisample resolve を自動的に実行する機能が追加されました。以前は、リダイレクトされたQt Quick シーンのマルチサンプルレンダリングは、マルチサンプルテクスチャをターゲットとする場合にのみ可能であり、解決処理はアプリケーションまたはそのシェーダーに委ねられていました。 この機能を有効にすると、Qt Quick はカラーバッファとして使用するための中間的なマルチサンプルテクスチャを自動的に生成し、アプリケーションが提供する非マルチサンプルテクスチャへの解決を自動的に実行するようになりました。 これにより、非マルチサンプルテクスチャのみを提供・使用する外部エンジン、フレームワーク、またはAPI(例:OpenXR)が提供するQt Quick レンダリングターゲットテクスチャを作成できるようになります。
- QQuickRenderTarget で、setting a depth texture のサポートが追加されました。これにより、Qt独自の中間バッファを使用する代わりに、深度データが書き込まれるアプリケーション独自のテクスチャ(マルチビューレンダリングを使用する場合はテクスチャ配列)を指定できるようになりました。 これは特に、外部のエンジン、フレームワーク、またはAPI(例:OpenXR)が提供する深度テクスチャに深度データを書き込む必要がある場合に役立ちます。
- QQuickRenderTarget において、テクスチャビュー形式の指定機能を追加しました。これは、QQuickRenderTarget::fromVulkanImage() などの新しいオーバーロードにおける
viewFormat引数を介して指定されます。 この機能は、テクスチャ形式から sRGB 修飾子を削除したり、追加したりできるようにするために特に提供されており、テクスチャ形式を制御できない外部エンジン、フレームワーク、または XR コンポジターによって提供されたテクスチャを扱う必要がある場合に有用です。 、かつ3D APIによるシェーダー書き込み時の暗黙的な線形→sRGB変換が許容できない場合(例:Qt Quick の3Dマテリアルパイプラインがすでに同じ処理を行っているため)に役立ちます。 - QQuickRenderTarget深度/ステンシルおよびマルチサンプルカラーデータの中間バッファの内部管理が再設計されました。QQuickWindow::setRenderTarget() を呼び出しても、すべての内部一時バッファが無効化されることはなくなり、サイズ、フォーマット、およびその他のパラメータが一致する限り、再利用が試みられるようになりました。 これにより、毎フレームごとに異なるネイティブテクスチャをQQuickWindow に渡す必要があるアプリケーションやライブラリ(例:テクスチャが外部エンジン、フレームワーク、またはXRコンポジターによって管理されるバッファプールから取得される場合など)において、パフォーマンスの向上が期待されます。
Qt Quick コントロールモジュール
- Windows 11 以降を実行するプラットフォーム向けに設計された、モダンでネイティブ風のスタイル「FluentWinUI3 Style」が追加されました。
- Popup およびその派生型に、新しいプロパティpopupType が追加されました。これを使用すると、ポップアップをシーン内に表示するか、独自のトップレベルのポップアップウィンドウに表示するかを制御できます。
- macOSスタイルでは、ネイティブなmenus およびmenubars を作成できるようになりました。
- PaddedRectangleやMnemonicLabelなどの(内部)QtQuick.Controls.implモジュールに属する型は、QtQuick.Controlsまたはいずれかのコントロールスタイルをインポートするドキュメントに対して、誤って公開されることはなくなりました。 これらの型はプライベートAPIであり、QtQuick.Controls.implを明示的にインポートしない限り、アクセス可能になることは想定されていませんでした。
Qt Quick Shapes モジュール
- ShapePath.fillItemプロパティが追加されました。これを使用すると、任意のテクスチャプロバイダアイテム(レイヤードアイテムや画像など)をシェイプの塗りつぶしとして使用できます。
- ShapePath の.fillTransformプロパティが追加されました。これは、アイテムであれグラデーションであれ、シェイプの塗りつぶしに任意の変形を設定するために使用できます。
Qt Quick 3D モジュール
- Qt Quick 3D の XR サポートに関するテクノロジープレビュー
- Meta Quest 2 や 3 など、OpenXR を使用するヘッドマウントディスプレイ(HMD)のサポート。
- Apple Vision Proのサポート。
- マルチビューレンダリング(1回のパスで両眼をレンダリング)。
- ハンドトラッキングまたはコントローラーによる空間入力のサポート。
- 空間アンカーのサポート。
- シャドウレンダリングの改善
- 全体的な品質の向上。
- シャドウのデバッグツールの機能強化。
- カスケードシャドウマップ。
- パーセンテージ・クローサー・フィルタリング(PCF)によるソフトシャドウ。
- PrincipledMaterial 機能強化
- フレネル効果を調整するための追加パラメータ。
- 頂点カラー属性に基づくプロパティマスキングのサポート。
- CustomMaterial: `PrincipledMaterial` から残りのプロパティを公開します。
Qt Quick VectorImage モジュール
- VectorImage を導入しました。これは、ハードウェアアクセラレーションを利用し、事前のラスタライズ処理を必要とせずにベクターグラフィックスを直接Qt Quick でレンダリングできるコンポーネントです。現在、SVG形式(
SVG Tiny 1.2プロファイルの静的サブセット)をサポートしています。
Shader Tools Qt XML-ph-0000@deepl.internal モジュール
- マルチビューレンダリングに対応したシェーダーのサポートを完了しました。CMake関数 `qt_add_shaders()` に `
MULTIVIEW` キーワードを追加しました。 - qt_add_shaders() を通じてビルド時に処理されるシェーダーに対する depfile サポートを追加しました。シェーダー内で
#includeディレクティブを介してインクルードされたファイルが変更されると、次回のプロジェクトビルド時にそのシェーダーファイルの再コンパイルがトリガーされるようになりました。
Qt SQL モジュール
- QSqlDatabase、QSqlQuery 、およびQSqlDriver に、numericalPrecisionPolicy が追加されました。
- QSqlDatabase データベース接続のスレッドアフィニティを変更するための新しい関数 `moveToThread()` が追加されました。
- PostgreSQL および MySQL/MariaDB ドライバは、サーバーがクライアントとは異なるタイムゾーンにある場合でも、日付と時刻を正しく処理するようになりました。
- デバッグ性を向上させるため、すべてのロギングはカテゴリ化されたロガー「Qt SQL」を通じて行われるようになりました。
- QSqlField::defaultValue、value 、readOnly 、requiredStatus 、length 、precision 、generated 、autoValue 、およびtableName がプロパティになりました。
- QSqlIndex::name また、cursorName 、QSqlQuery::forwardOnly 、およびpositionalBindingEnabled はプロパティになりました。
Qt Test モジュール
- QTEST_THROW_ON_FAIL およびQTEST_THROW_ON_SKIP という C++マクロと環境変数を追加しました。これらを定義すると、QCOMPARE()/QVERIFY()/QSKIP() などが、失敗時にテスト関数を終了する方法が変わります。 return 文によって直近の関数のみを終了させる代わりに、特別な例外をスローすることで、テスト関数のサブ関数から QtTestLib に至るまで、すべての関数を終了させます。
- QTRY_*_WITH_TIMEOUTマクロは、chrono リテラルも受け入れるようになりました(以前は
intミリ秒でした)。 - QTest::failOnWarning() には、すべてに一致する正規表現を構築する必要なく、「警告が発生したら失敗する」という一般的なケースをサポートするための、引数なしのオーバーロードが追加されました。
- QSignalSpy は、QObject から継承しなくなりました。コード内で、QSignalSpy がQObject であることを利用している場合は、この変更に合わせて再設計する必要があります。
- QSignalSpy::signal() メソッドは、接続に失敗した場合でも、必ずしも空のバイト配列を返すとは限りなくなりました。特定のQSignalSpy オブジェクトが有効なオブジェクトに対して有効なシグナルをリッスンしているかどうかを判断するには、既存のisValid() メソッドを使用してください。
- QCOMPARE_xx マクロは、対象の型に対する引数依存検索(Argument Dependent Lookup)によって見つかるもの、またはQTest::toString<T>() テンプレートのインスタンス化のいずれかであるQTest::toString() の展開のみを検出できるようになりました。これはQCOMPARE() マクロの挙動と一致しています。
Qt WebEngine モジュール
- QWebEngineFrame が追加されました。これにより、特定のフレーム上でJavaScriptを実行したり、特定のフレームを出力したりするなど、フレーム固有のAPIを利用できるようになります。
- QWebEngineClientHints クライアントヒント DOM API を使用して、Web ページに対するブラウザの識別情報をより適切に制御するために追加されました。
- QWebEnginePermission 新規および既存のWebサイト権限を管理するために追加されました。QWebEnginePage にある既存の権限APIは非推奨となり、QWebEngineProfile::getPermission()およびQWebEngineProfile::listPermissions()に置き換えられました。
- QWebEngineProfile::setPersistentPermissionsPolicy() が追加され、ブラウジング セッションをまたいで Web サイトの権限がどのように保持されるかを制御できるようになりました。デフォルトでは、取得した権限はディスクに保存されます。
- QWebEnginePermission::ClipboardReadWrite およびQWebEnginePermission::LocalFontsAccess という権限タイプが追加されました。
- QWebEngineCertificateError::isMainFrame() は、証明書エラーがメインフレームまたはサブフレームから発生したことを示します。
- QWebEngineNavigationRequest::hasFormData() を追加し、フォームデータを送信するナビゲーションリクエストであることを示すようにしました。
- QWebEngineSettings::imageAnimationPolicy() が追加され、画像のアニメーションポリシーを制御できるようになりました。
ツール
QDoc ドキュメントジェネレータ
- コンテキスト依存のヘルプを改善する手段として、
\keywordコマンドを使用してセクションタイトルにリンクできるようになりました。 - QDoc は、ドキュメント化されていないプロパティアクセス関数について、存在しないドキュメントに誤ってリンクすることがなくなりました。
- ビルドシステムは、
QDOC2_COMPATを定義しなくなりました。 - DocBook 出力を生成する際、QDoc は文字を複数回エスケープしなくなりました。
\instantiatesコマンドは非推奨となりました。代わりに、新しい\nativetypeコマンドを使用してください。旧コマンドは新しいコマンドに委譲されるようになり、QDoc はその非推奨に関する通知を生成します。- 関数の戻り値の型として `
auto` を指定することで、生成されるドキュメント内で完全な型を隠蔽することができます。 - API ドキュメント内の要件テーブルの書式設定が改善されました。
- QDocがstdoutに出力するレポートの重複が減少しました。
- 関連する
\groupドキュメントが存在しない場合、.qhp ファイルには\ingroupコマンドで作成されたグループ項目のエントリが(正しく)含まれるようになりました。 - QDoc は、クラスや型だけでなく、.qhp ファイル内の名前空間のタイトルも生成するようになりました。
- QDoc は、
-DDEFINE=VALUEコマンドのコマンドラインオプションを正しく解析するようになりました。 - QDoc は、以下の場合に新しい警告を生成します。
- qhp サブプロジェクトの indexTitle 属性が見つからない場合。
- 同じ C++ クラスに対して
\nativetypeコマンドが複数回使用された場合。 - プロジェクトごとにファイルを複数回生成する場合。
- 以前にオーバーロードとして選択されていた関数で、
\overloadコマンドで明示的にマークされておらず、ソート順の変更によりプライマリシグネチャとして選択されたもの。これらは完全にドキュメント化するか、\overloadコマンドでタグ付けする必要があります。
- QDoc は、オーバーロードされたコンストラクタ内のドキュメント化されていないパラメータについて警告を出さなくなり、一部の不要なリンク警告が削除されました。
- リンク警告は、より適切な位置を報告するようになりました。
- QDocは、Clang 17以降を必要とするようになりました。
- QDocのマニュアルには複数の更新が加えられました。
- 新しい `
\tm` コマンドを使用して、商標にタグを付けることができます。設定変数 `navigation.trademarkspage` を定義すると、商標記号 (tm) がそのページへのリンクになります。 \deprecated commandでは、将来のバージョンも指定できるようになりました。- QDocマクロの引数で、書式設定コマンドが使用できるようになりました。
\compareswithコマンドで、中括弧で囲まれた引数が指定できるようになりました。-outputdirコマンドラインオプションは、現在作業ディレクトリを基準とするようになりました。また、nosubdirs設定変数は、outputdirの内容を改変しなくなりました。- 未使用かつドキュメントに記載されていなかった設定変数 `
clangdefines` が削除されました。 - QDoc は、
.qhp.sha1ファイルを生成しなくなりました。 - QDoc は、目次内の項目への一意の参照を生成するようになりました。
- HTML 出力を生成する際、QDoc は API エンティティへのリンクにのみ
translate="no"を付与するようになりました。 - マルチプロジェクトのドキュメントビルドにおける名前の衝突が減少しました。これにより、特定の構成において、生成されるファイル名に影響が出る場合があります。
- 新しい `
\qtcmaketargetitem` コマンドを使用して、CMake ターゲットを指定できるようになりました。 - 下付き文字を含む関数引数のサポートが削除されました。この機能は、ドキュメント化されておらず、使用されておらず、バグも多発していました。これを削除することで、ドキュメント化されたすべての関数シグネチャおよび `
\a` コマンドの引数に対して、正規表現の構築やマッチングの試行を行う必要がなくなりました。 - 関数シグネチャへのリンクの外観が、より一貫性のあるものになりました。
- QDocは、C++の列挙型からQMLドキュメントへ自動生成される値をサポートするようになりました。
outputprefixesおよびoutputsuffixes設定変数は、QML 型およびモジュールのドキュメントだけでなく、C++ 型のドキュメントにも適用されるようになりました。これは、2 つ以上のモジュールが同じ型名を定義しているマルチモジュールドキュメント構成において便利です。
プラットフォームの変更
デスクトッププラットフォーム
Armベースのデスクトップ
- Windows on Arm デスクトップ上で、Qt および Qt アプリケーションのビルドと開発が可能になりました。
- Linux on Arm デスクトップ上で、Qt および Qt アプリケーションのビルドと開発が可能になりました。
Windows
- フォントシステムを変更し、デフォルトのバックエンドとして DirectWrite を使用するようにしました。これにより、従来の GDI バックエンドでは利用できなかった最新の機能がいくつか利用可能になりました。以前のバックエンドも引き続き利用可能であり、QPA プラグインにパラメータとして `
fontengine=gdi` を渡すことで有効にできます。
macOS
- macOS 15 のサポートを追加しました。
- フルスクリーンアプリケーションのカメラノッチ、およびコンテンツがタイトルバーにはみ出すウィンドウの両方について、セーフエリアのマージンに対応しました。
- Qt Quick ウィンドウのサイズ変更時に発生していたちらつきを、トランザクションを使用して Metal レイヤーを提示することで修正しました。
- Qt Quick ウィンドウのサイズ変更時にアニメーションを実行できるようにしました。
- ウィンドウフレームのサイズ変更時のカーソル用に、新しい NSCursor API を採用しました
- サービスメニューおよびライティングツールのサポート向けに、NSServicesMenuRequestor プロトコルを実装しました。
Linux 上の Wayland クライアント
- GNOME で使用され、GNOME と同様のスタイルを採用した新しいウィンドウ装飾スタイルを追加しました。
- ダイアログのモーダルステータスが、新しいxdg-dialog-v1 プロトコルを介してコンポジターに転送されるようになりました。
- ウィンドウの表示時に、コンポジターへのアクティベーション要求も行われるようになりました(Qt::WA_ShowWithoutActivating が設定されている場合を除く)。
- qtwaylandscanner に、QString が null の場合に null を送信するサポートを追加しました。
- qt_generate_wayland_protocol_client_sources()に、
PUBLIC_CODEおよびPRIVATE_CODEオプションを追加し、wayland-scannerに渡されるオプションを制御できるようにしました。 - Qt Multimedia で、XDG デスクトップポータル経由の ScreenCast サービスを使用したスクリーンキャプチャ機能を実装しました。
モバイルプラットフォーム
Android
- サポートされる最小バージョンを Android 9 に引き上げました。
- build.gradle の namespace プロパティのサポートを追加しました。
- パッケージ名を設定するための CMake プロパティQT_ANDROID_PACKAGE_NAMEを追加しました。
- Gradle を 8.10 に、AGP を 8.6.0 に更新しました。
- AAR ライブラリパッケージのビルドに対応しました。
- Qt Multimedia におけるネイティブ Android バックエンドを非推奨にしました。
- QLibrary でライブラリを開く際、デフォルトでは JNI_OnLoad が呼び出されなくなりました。
- QtQuickViewおよび QML 埋め込み:
- QtQuickView API に対する強型付けのサポートを追加しました。
- QML コンテンツを管理するための API が追加されました。これに伴い、QtQuickView 内の以下の Java クラスが、それぞれ独自のクラスに移動されました。これには以下が含まれます:
- QtQuickView.SignalListener → QtSignalListener。
- QtQuickView.StatusChangeListener → QtQmlStatusChangeListener。
- QtQuickView Status → QtQmlStatus。
- QAbstractItemModel 、QAbstractListModel 、QModelIndex をそれぞれラップするJavaクラス QtAbstractItemModel、QtAbstractListModel、QtModelIndex が追加されました。
- サービスからの QML 埋め込みのサポートを追加しました。
iOS
- iOS 18 のサポートを追加しました。
- QScreen::orientation() による UIDevice.currentDevice.orientation の誤った報告を修正しました。
- アクセシビリティの統合を改善しました。
visionOS
- visionOSの暫定的なサポートを追加しました。
組み込みプラットフォーム
QNX
- QNX 8.0 のサポートを Technology Preview として追加しました。
- QNX 8.0 にはマルチメディアサポートがありません。configure で `
-skip qtmultimedia` を指定してください。
VxWorks
- VxWorks 24.03 のサポートが追加されました。
Boot to Qt
- Yocto 5.0 (Scarthgap) のサポートが追加されました。
- ターゲットハードウェアのサポートレベルが更新され、Tier 1 で新たに以下のボードがサポート対象となりました:
- Raspberry Pi 5。
- ターゲットハードウェアのサポートレベルが更新され、Tier 2に新たにサポートされるボードが追加されました:
- NVIDIA Jetson AGX Orin Developer Kit(Tier 3から昇格)。
- Raspberry Pi 4 64ビット(Tier 1から格下げ)。
- ターゲットハードウェアのサポートレベルが更新され、Tier 3で新たにサポートされるボードが追加されました:
- NXP i.MX95(Qtカスタマーポータル経由で実験的サポート)。
- Toradex i.MX 95 Verdin 評価キット(Qt カスタマーポータル経由で実験的サポート)。
- StarFive VisionFive 2。
- ST STM32MP15 評価キット(Tier 2 から格下げ)。
- NXP i.MX 8MQuad 評価キット(Tier 2 から格下げ)。
APIの変更点のリスト
これらのページには、Qt 6.8 における API の変更点の概要が記載されています:
© 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.