Qt 6.8 の新機能
Qt 6.8 の新しいモジュールと復活したモジュール
Qt 6.8 では、以下のモジュールとツールが追加されました:
- SVG ドキュメントから QML コードを生成するためのsvgtoqmlツールは、技術プレビューを終了しました。このツールは
SVG Tiny 1.2
プロファイルの静的サブセットをサポートしています。 - Qt Graphs、Qt HTTP Server、Qt Protobuf、Qt GRPC の各モジュールが技術プレビューを終了しました。
- Qt Quick シーンに SVG ドキュメントをスケーラブルなベクターグラフィックスとして表示するQt Quick Vector Image モジュールを追加しました。
Qt 6.8 で削除されたモジュール
以下のモジュールは非推奨です。新しいコードで使用しないことを強くお勧めします。
Qt 3D モジュール
Qt 3Dモジュールは非推奨です。Qt 3D はライセンスされたソフトウェアの一部であり、Qt プロジェクトの一部です。このモジュールは将来のリリースに向けて他のモジュールと統合され続けます。致命的なバグやセキュリティの脆弱性については、KDABのモジュールメンテナによって対処されます。新しい機能や特徴については、info@kdab.com までメールでお問い合わせください。
Qt 6.8 の新機能
Qt コアモジュール
- QChronoTimer は、 の置き換えで、全体的に std::chrono durations を使用しています。QTimer
- QTimer::id() はQt::TimerId を返します。int タイマー ID の代わりに、int タイマーを受け取る様々なメソッドのオーバーロードに導入されました。
- QAbstractEventDispatcher の積分ナノ秒パラメーターを置き換える std::chrono durations のサポートが増えました。
- QString QByteArray, および ゲイン resizeForOverwrite().QList
- QString QByteArray ゲイン slice() と同等。
*this = sliced()
- QString QByteArray, , 標準テンプレート・ライブラリ (STL) との互換性のために max_size() を追加。QList QVarLengthArray
- QList content-typeが許す限り、指定されたサイズまで初期化されていないエントリを持つ構築をサポートします。
- QVarLengthArray::PreallocatedSize は Prealloc パラメータを示します。
- QLatin1StringMatcher::indexIn() にQStringView を指定できるようになりました。
- QCollatorSortKey move-constructionをサポートするようになりました。
- QStringEncoder および が、エンコーディング名を として受け取れるようになりました。QStringDecoder QString
- QThread isMainThread(), () が追加されました。isCurrentThread
- QThreadPool::waitForDone() が int ミリ秒の代わりにQDeadlineTimer を受け取れるようになりました。
- QDirListing stl スタイルでディレクトリエントリを反復処理できるようになりました。
- QVersionNumber QSpan から構築できるようになりました。
- qHash() が quint128 と qint128 を受け付けるようになりました。
- QMap::qHash() はキーのハッシュ値を示す。
- QHash 等価な値に対して等価なハッシュ結果を持つとマークされている場合、異なる型をキーからハッシュできるようになりました(C++20のみ)。これは、 / および / のペアで動作します。ARM プロセッサを除くすべてのシステムでは、 は と のハッシュにも参加します。QStringQStringView QByteArrayQByteArrayView QLatin1StringView QString QStringView
- QPointF QLineF, , は、ファジー比較とヌル・チェックをサポートするようになった。QRectF QMarginsF
- QT_ENABLE_STRICT_MODE_UP_TOを定義して、様々なAPIからオプトアウトできるようにしました。
- QT_NO_QASCONST を定義して qAsConst() を無効にする。
- QT_(NO_)USE_NODISCARD_FILE_OPEN を定義して、I/O クラスの
open()
メソッドの[[nodiscard]]
を制御する。 - QLibraryInfo::paths() は、関連するすべてのパスを返す。
- QCryptographicHash そして、 ()を得て、提供されたバッファへのデータのハッシュを計算する。QMessageAuthenticationCode hashInto
- C++20 でコンパイルすると、
operator<()
を持つQtCore 型がさらにoperator<=>()
もサポートするようになりました(C++17 でもcompareThreeWay()
をサポート)。これらの型は、(隠された友人として)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 の variadic テンプレートバージョンは、もはや予備的なものではなく、完全にドキュメント化されています。
- 新しいQJniArray テンプレート・クラスは、C++ コードから Java 配列を簡単に扱えるようにします。
Qt Graphs モジュール
- Qt Graphsは技術プレビューから昇格しました。
- このモジュールはQt GraphsとQt Graphs Widgets の 2 つのサブモジュールに分割され、純粋な QML アプリケーションにウィジェットを含める必要がなくなりました。
- 2D と 3D グラフのテーマが統一されました。GraphsTheme を参照してください。
- Qt ChartsとQt DataVisualization からの移行ガイドを参照してください。
Qt Graphs3D
- Bars3D とScatter3D の透過サポートを追加しました。
- Scene3D.primarySubViewport とScene3D.secondarySubViewport のサポートを追加しました。
- グラフタイトルの位置をオフセットできるようにした。Abstract3DAxis.titleOffset を参照してください。
- ラベルマージンのサポートを追加しました。GraphsItem3D.labelMargin を参照。
- シェーダーによるグリッドのレンダリングとグリッド線の幅の変更に対応しました。GraphsItem3D.gridLineType および GraphsTheme.GraphsLine.mainWidth を参照してください。
Qt Graphs2D
- AreaSeries のサポートを追加しました。
- QML コンポーネントを使用したカスタムバーのサポートを追加しました。BarSeries.barDelegate を参照してください。
- Stacked および StackedPercent バーのサポートを追加しました。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 Qt GUI モジュールにセッター関数が追加され、アプリケーションが明示的な Dark または Light スキームでシステム設定をオーバーライドできるようになりました。
- フォールバックフォントを選択する際に完全な文字列を考慮する新しいフォントマージアルゴリズムを有効にするために使用できるQFont::ContextFontMerging を追加しました。これには若干のコストがかかりますが、場合によってはより良い結果が得られます。
- QFont::PreferTypoLineMetrics こ れは、 フ ォ ン ト が手動でUSE_TYPO_METRICSフ ラ グ を設定 し ていない と き で も 、 OpenType フ ォ ン ト 内の組版線 メ ト リ ッ ク をつねに優先す る よ う 設定す る こ と がで き ます。
- iOSと同様に、QDesktopServices カスタムおよびhttpsURLスキームサポートをmacOSに追加。
- QImage::Format_CMYK8888 32ビットCMYK画像フォーマットが追加されました。
- QColorSpace グレースケールとCMYKカラースペースの明示的なサポートとともに、ICC A2Bカラースペース処理のサポートが追加されました。
- 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 モジュール
- カスタム・メディア・データをQMediaRecorder からQMediaCaptureSession に送信できるクラスQVideoFrameInput とQAudioBufferInput を追加しました。
- QMediaPlayer からデコードされたオーディオ・データを受信できるクラスQAudioBufferOutput を追加しました。
- カスタム・ビデオ・データを持つQVideoFrame インスタンスを作成できるクラスQAbstractVideoBuffer を追加。
- QMediaRecorder メディア出力を に書き込むことができる。QIODevice
- Wayland コンポジタを使用する Linux 上で、XDG Desktop Portal 経由の ScreenCast サービスをサポートするQScreenCapture のサポートが追加されました。
- FFmpeg ライブラリは FFmpeg プラグインに動的にリンクされ、利用される共有 FFmpeg モジュールは Qt Multimedia に同梱されます。
- iOS の FFmpeg メディアバックエンドのサポートを追加。
- GStreamer の必要最小バージョンを 1.20 に引き上げた。
Qt ネットワークモジュール
- QNetworkAccessManager unix+http:またはlocal+http:スキームを使用したローカルソケットからの HTTP リクエスト送信をサポートした。
- QDnsLookup TLS 経由での DNS 送信に対応し、DNS サーバーがデータの真正性の検証を行ったかどうかを通知できるようになった。
- QDnsLookup TLSアソシエーションレコードがサポートされた。
- QNetworkCacheMetaData QNetworkProxy, , でヘッダーの取得と設定ができるようになりました。QNetworkRequest QNetworkReply
- QNetworkRequestFactory 将来のリクエストのために、 と同様に を設定できるようになった。attributes priority
- QHttpMultipart メッセージの作成を簡単にするために、QFormDataPartBuilder とQFormDataBuilder クラスを追加しました。
Qt Network Auth モジュール
- プライベート/カスタムおよび https URI スキームのリダイレクトを処理するQOAuthUriSchemeReplyHandler クラスを追加しました(対応プラットフォーム:iOS、Android、macOS)。
- QOAuth2AuthorizationCodeFlow クラスに Proof of Key Code Exchange (PKCE) サポートを追加しました。PKCEは、認証コード傍受攻撃を軽減するために推奨されるセキュリティ対策です。
- 複数のユーザーからの意見を受け、qnetworkauth を全般的に改善する目的で、多くの問題に対処しました。これには、いくつかのバグフィックス、改善、非推奨事項、ドキュメントの追加、そして、使い始めに役立つ概要ドキュメントが含まれます。
Qt ポジショニングモジュール
- Android 14 以降で、Qt Positioning Android バックエンドがMSL フォーマットで高度を提供できるようになりました。
Qt Protobuf モジュール
- Qt Protobufモジュールが技術プレビューから昇格しました。
Qt QML モジュール
- QML Language Server に新機能を追加しました: セマンティックハイライト、JavaScript 言語サポートの追加、Quick タイプのスニペットサポート、ドキュメントヒント、QML ファイルのリネーム、
.qmllint.ini
警告設定のサポート。 - qt_add_qml_moduleの動作に影響を与えるCMake ポリシーが2 つ追加されました:QTP0004は、ネストされたフォルダ構造を使用している場合に QML モジュールの使用を容易にします。QTP0005では、インポートや依存関係を指定する際にターゲットを使用できるようになりました。
Qt クイックコンパイラ
- 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,QSGMaterialShader) の作成が、QSGMaterial::viewCount() 経由で可能になりました。
- 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 コンポジターによって提供されるテクスチャを扱う必要がある場合に便利です。 - QQuickRenderTarget深度/ステンシルおよびマルチサンプルカラーデータの中間バッファの内部管理が再設計されました。QQuickWindow::setRenderTarget() を呼び出すと、内部の一時バッファがすべて無効になるのではなく、サイズ、フォーマット、その他のパラメータが一致する限り、再利用が試みられるようになりました。これにより、フレームごとに異なるネイティブテクスチャをQQuickWindow に渡す必要があるアプリケーションやライブラリでパフォーマンスが向上することが期待されます(テクスチャが外部エンジン、フレームワーク、または XR コンポジターによって維持されるバッファプールから来る場合など)。
Qt Quick Controls モジュール
- FluentWinUI3 スタイルを追加しました。これは、Windows 11 以上を実行するプラットフォーム用に設計された、モダンなネイティブルックのスタイルです。
Qt Quick Shapes モジュール
- ShapePath.fillItemプロパティを追加しました。これは、任意のテクスチャ提供アイテム(レイヤーアイテムや画像など)を受け取り、シェイプの塗りつぶしとして使用するために使用できます。
- ShapePath.fillTransformプロパティが追加され、アイテムやグラデーションなど、シェイプの塗りに任意のトランスフォームを設定できるようになりました。
Qt Quick 3D モジュール
- Qt Quick 3D の XR サポートの技術プレビュー
- Meta Quest 2 や 3 などの OpenXR を使用するヘッドマウントディスプレイ (HMD) をサポートします。
- Apple Vision Pro のサポート
- マルチビューレンダリング(両眼をシングルパスでレンダリング)。
- ハンドトラッキングやコントローラーによる空間入力のサポート。
- 空間アンカーのサポート。
- シャドウレンダリングの改善
- 全体的な品質の向上。
- シャドウデバッグツールの強化。
- カスケードシャドウマップ。
- パーセンテージクローザーフィルタリング(PCF)ソフトシャドウ。
- PrincipledMaterial 機能強化
- フレネルを調整するためのパラメータを追加。
- 頂点カラー属性に基づくプロパティのマスキングをサポート。
- CustomMaterial PrincipledMaterial 。
Qt Quick VectorImage モジュール
- VectorImageハードウェアアクセラレーションとプリラスタライズなしで、ベクターグラフィックスを Qt Quick で直接レンダリングするためのコンポーネントです。現在は SVG フォーマット(
SVG Tiny 1.2
プロファイルの静的サブセット)をサポートしています。
Qt Shader Tools モジュール
- マルチビューレンダリングに対応したシェーダのサポートを完了しました。Qt Shader Tools Build System Integration に
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() などのテスト関数を失敗時に終了する方法を変更できます。テスト関数のサブ関数から QtTestLib に至るまで終了します。
- QTRY_*_WITH_TIMEOUTマクロは、クロノリテラルも受け付けるようになりました(以前は:
int
ミリ秒)。 - QTest::failOnWarning() にパラメータなしのオーバーロードが追加され、fail-on-any-warning の一般的なケースに対応しました。
- QSignalSpy QObject QSignalSpy が であるという事実をコードで使用している場合は、この点を考慮して再設計する必要があります。QObject
- QSignalSpy::signal() メソッドは、接続に失敗したときに必ずしも空のバイト配列を返すわけではなくなりました。既存のisValid() メソッドを使用して、指定されたQSignalSpy オブジェクトが有効なオブジェクトの有効なシグナルをリッスンしているかどうかを判断します。
- QCOMPARE_xx マクロは、対象の型の引数依存の検索を介して検出されるか、QTest::toString<T>()テンプレートのインスタンス化であるQTest::toString() 展開のみを検出できるようになりました。これはQCOMPARE() マクロの動作と同じです。
Qt WebEngine モジュール
- QWebEngineFrame 特定のフレームで javascript を実行したり、特定のフレームを印刷したりするような、フレーム固有の API を追加しました。
- QWebEngineClientHints クライアントヒント DOM API を使用して、Web ページに対するブラウザの識別をより適切に制御できるようにした。
- QWebEnginePermission 新規および既存のウェブサイトのパーミッションを管理するために追加されました。 の既存のパーミッション API は廃止され、QWebEngineProfile::getPermission() および QWebEngineProfile::listPermissions() に置き換えられました。QWebEnginePage
- 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が標準出力に生成するレポートの重複を減らしました。
- 関連する
\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 上の Arm デスクトップで Qt および Qt アプリケーションをビルドして開発できるようになりました。
Windows
- デフォルトのバックエンドとして DirectWrite を使用するようにフォント システムを変更しました。これにより、レガシーの GDI バックエンドでは使用できなかったいくつかの最新機能が使用できるようになりました。以前のバックエンドはまだ使用可能で、QPA プラグインにパラメータとして
fontengine=gdi
を渡すことで有効にできます。
macOS
- macOS 15のサポートを追加しました。
- フルスクリーンアプリケーションのカメラノッチと、タイトルバーにコンテンツがはみ出すウィンドウの両方で、セーフエリアのマージンをサポートするようになりました。
- Qtクイックウィンドウのサイズ変更時に、メタルレイヤーにトランザクションを表示することで、ちらつきを修正。
- Qt Quick ウィンドウのリサイズ時にアニメーションを実行できるようにした。
- ウィンドウフレームのサイズ変更カーソルに新しい NSCursor API を採用した。
- サービスメニューとライティングツールのサポートのために NSServicesMenuRequestor プロトコルを実装した。
LinuxのWaylandクライアント
- GNOMEで使用されている新しいウィンドウ装飾スタイルを追加し、GNOMEと同様のスタイルを使用するようにしました。
- ダイアログのモーダルステータスが、新しいxdg-dialog-v1プロトコルを介してコンポジターに転送されるようになりました。
- ウィンドウを表示すると、コンポジターにアクティベーションを要求するようになりました(Qt::WA_ShowWithoutActivating が設定されている場合を除く)。
- qtwaylandscanner にQString が null の場合に null を送信するサポートを追加しました。
- qt6_generate_wayland_protocol_client_sourcesに
wayland-scanner
に渡すオプションを制御するPUBLIC_CODE
とPRIVATE_CODE
オプションを追加しました。 - Qt Multimedia の XDG デスクトップポータル経由で ScreenCast サービスを使用したスクリーンキャプチャ機能を実装。
モバイル プラットフォーム
アンドロイド
- サポートされる最小バージョンを Android 9 に引き上げました。
- build.gradle 名前空間プロパティのサポートを追加しました。
- パッケージ名を設定する 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 に変更しました。
- QtAbstractItemModel, QtAbstractListModel, QtModelIndex を追加しました。それぞれQAbstractItemModel,QAbstractListModel,QModelIndex をラップしています。
- サービスからの QML 埋め込みのサポートを追加しました。
iOS
- iOS 18 のサポートを追加しました。
- QScreen::orientation() 経由で UIDevice.currentDevice.orientation を誤って報告していた問題を修正。
- アクセシビリティの統合を改善
ビジョンOS
- visionOSの暫定サポートを追加。
組み込みプラットフォーム
QNX
- QNX 8.0 のサポートを技術プレビューとして追加しました。
- QNX 8.0 にはマルチメディア サポートがないため、configure で
-skip qtmultimedia
を使用してください。
VxWorks
- VxWorks 24.03 のサポートを追加しました。
Qt への起動
- Yocto 5.0 (Scarthgap) のサポートを追加しました。
- ターゲットハードウェアのサポートレベルが更新され、Tier 1 の新しいサポートボードが追加されました:
- Raspberry Pi 5。
- ターゲットハードウェアのサポートレベルが更新され、Tier 2用の新しいボードがサポートされました:
- NVIDIA Jetson AGX Orin Developer Kit (Tier 3 からアップグレード)。
- Raspberry Pi 4 64-bit (Tier 1 からダウングレード)。
- ターゲットハードウェアのサポートレベルが更新され、新たに Tier 3 のボードがサポートされました:
- NXP i.MX95 (Qt Customer Portal 経由で実験的)。
- Toradex i.MX 95 Verdin 評価キット(Qt Customer Portal 経由で実験的)。
- StarFive VisionFive 2。
- ST STM32MP15 評価キット(Tier 2 からダウングレード)。
- NXP i.MX 8MQuad 評価キット(Tier 2 からダウングレード)。
API変更のリスト
これらのページには、Qt 6.8 における API の変更点の概要が記載されています:
©2024 The Qt Company Ltd. ここに含まれるドキュメントの著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。