Qt 6.9 の新機能
Qt 6.9 の新機能
Qt Core モジュール
- QString::arg() が UTF-8 (QUtf8StringView) とQAnyStringView 引数をサポートするようになりました。C の文字列リテラルや QByteArrays をarg() に渡しても、暗黙的に最初にQString に変換されなくなりました。
- QAnyStringView QUtf8StringView また、 や のように、 () が追加されました。また、 バージョンのように、 と の引数もサポートするようになりました。QStringView QLatin1StringViewarg QString QUtf8StringView QAnyStringView
- QJniArray 固定サイズの空の配列を作成できるようになり、constでないイテレータを使用して配列内の値を変更できるようになりました。operator[]
- QLocale::uiLanguages() は、名前の後のコンポーネントを削除することで得られるフォールバック・エントリを含むようになった。このような切り捨てを自分で行っていた呼び出し元は、QLocale が試すべき正しい方法と、それを試すべき正しい順序を知っていることを信頼することが推奨されるようになった。
- QLocale::bcp47Name()は、Cのロケールを "en-POSIX "として表すようになった。これは、 単なる "en "と区別し、BCP47仕様との整合性を高めるためである。また、POSIXというバリアントも、その名前からCロケールを構築する際に、 Cロケールを意味するものとして認識されるようになった。
- QTimeZone::abbreviationWindowsの()は、完全な名前ではなく省略形を返すようになった。
- QTimeZone::displayName()は、すべてのプラットフォームで実際にロケールに適したゾーン名を提供するようになった。
- タイムゾーン部分を含むタイムスタンプ文字列をQDateTime に変換する際、長い形式のゾーン表示名を認識するようになりました。
- QMetaEnum また、 、最大64ビットを必要とする型をサポートするようになりました。QFlags
- QJsonValue QJsonDocument を経由せずに、 と を直接使用して JSON をパースおよびシリアライズできるようになりました。これにより、文字列や数値のようなプリミティブな値や複合値をパースしてシリアライズできるようになった。fromJson toJson
- QThread 新しい 関数を使用して、OSスレッドのサービス品質ヒントを設定する機能が追加されました。setServiceLevel
- QThreadPool また、 を使用して、スレッドのサービス品質レベルを設定することもできます。setServiceLevel
- QFile::supportsMoveToTrash() は、QFile::moveToTrash() が現在のオペレーティング・システムに実装されているかどうかを報告する。
- QIODevice::readLineInto() を使用すると、事前に割り当てられたバッファにデータ行を読み込むことができる。
- 新しいQ_STATIC_LOGGING_CATEGORY マクロを使用して、1 つの翻訳単位でのみ使用されるロギング・カテゴリを宣言します。
- フィルタリングされた内容の変更が正しく認識されることを確認するために、新しいQSortFilterProxyModel::beginFilterChange() メソッドを呼び出してください。
- QTimerEvent::matches() は、タイマーイベントが特定のQBasicTimer に属するかどうかを簡単にテストできるようにします。
- QUuid::createUuidV7() は、RFC9562に基づく一意な識別子を作成することを可能にする。
- QCommandLineParser::showMessageAndExit() は、アプリケーションを終了する前に、ユーザーに情報またはエラーメッセージを表示する便利な方法を提供する。
- QHash tryEmplace と のAPIが標準ライブラリのそれぞれのAPIと一致するようになった。insertOrAssign
- QSpan chop と で可変サイズのスパンを指定できるようになった。slice
Qt Graphs モジュール
- QtQuick3D の順序に依存しない透明性を利用し、Surface3D に透明性のサポートを追加。今のところQtQuick3D には近似技法(WeightedBlended)のみが実装されているため、正確な技法はまだ使用できません。
- QtQuick3D アプリケーションでView3D にグラフを注入できるように
rootNode
プロパティを追加。 - View3D グラフ注入で使用する別のピッキング・メソッド
doRayPicking
を追加。 - ユーザーがデータをスプラインでレンダリングできるように
QSpline3DSeries
クラスを追加。 - Bars3D に
valueColoringEnabled
プロパティを追加し、各バーをその値に基づいて個別に色付けできるようにした。 - QAbstract3DAxis に
scaleLabelsByCount
プロパティを追加し、軸ラベルをラベルの総量に基づいて拡大縮小するかどうかを定義できるようにした。 - QAbstract3DAxis に
labelSize
プロパティを追加し、軸ラベルのサイズを軸ごとに設定できるようにした。 - Bars3D,Scatter3D,Surface3D に、X方向とY方向の最小回転と最大回転の設定サポートを追加。
- QAbstractAxis に
alignment
プロパティを追加し、軸を左、右、上、または下に配置できるようにした。 - QGraphsView に
plotArea
プロパティを追加し、グラフが描画される矩形を定義できるようにした。 - QGraphsView にズームとパン機能を追加。
- エリアグラフ、折れ線グラフ、円グラフ、散布図にカスタム入力処理を追加。
Qt GRPC モジュール
- Qt GRPC クライアント・ガイドの概要例を追加。
- すべてのドキュメントとサンプルを改善、改良しました。
- 高負荷時の書き込み用にストリーミング RPC を最適化した。
Qt GUI モジュール
- QBrush と で、色とスタイルの値との比較や値からの代入を行う演算子が最適化されました。QPen
- QPainter::setBrush() に、ソリッドブラシとして色を設定するための最適化されたオーバーロードが追加されました。
- QPainterStateGuard は、 でバランスのとれたセーブ/リストア操作を保証する新しい RAII クラスです。QPainter
- QColorSpace 4つの原色空間ポイントを設定および取得するためのAPIを追加しました。
- ウィンドウのクライアント領域が、ウィンドウのタイトルバーコントロールや他のシステムUIなど、他のUI要素によって隠されたり、競合したりする可能性がある領域まで拡張されるように要求するために、Qt::ExpandedClientAreaHint 。
- ウィンドウのタイトルバーが背景色なしで描画されるように要求するために、Qt::NoTitleBarBackgroundHint を追加しました。
- ウィンドウの安全領域を反映するためにQWindow::safeAreaMargins() を追加。
- テキスト中の絵文字シーケンスの解析と自動検出を追加し、Unicode仕様に従って必要な場合にカラーフォントの使用を保証。このパーサーは、QTextOption::DisableEmojiParsing を使用してレイアウトごとに無効にしたり、Qt の設定時に絵文字セグメンターを無効にしたりすることができます。
- アプリケーションで使用されるデフォルトの絵文字フォントをカスタマイズするためのQFontDatabase::addApplicationEmojiFontFamily() と関連関数を追加しました。
- フ ォ ン ト が対応 し てい る 変数軸に関す る 情報を取得す る ためのQFontInfo::variableAxes() を追加 し ま し た。
- QImage::flipped() およびQImage::flip() は、画像を反転させるためのQt::Orientation ベースの API を提供し、ブールベースのQImage::mirrored() よりもコードが読みやすくなりました。
- QRhiモバイル GPU 上で OpenGL ES をサポートしている場合、GL_EXT_multisampled_render_to_texture が可能な限り利用されます。Qt Quick やQt Quick 3D のようなクライアントでは、これは潜在的にタイル型 GPU アーキテクチャ上のマルチサンプルレンダリングに大幅なパフォーマンス向上をもたらします。
- QRhi:Direct 3D 11 および 12 を搭載した Windows では、QWindow の更新要求が専用の vblank watcher スレッドによって駆動されるようになり、CPU 負荷と待ち時間が削減されました。これは、Qt Quick のようなクライアントが、例えばマウスやタッチでアイテムをインタラクティブにドラッグする際のラグが減少することが期待されることを意味します。
- QRhi:適用可能な場合、可変レートシェーディングのサポートを追加しました(Direct 3D 12、Vulkan、Metal)。これにより、visionOS上のQt Quick 3D XRによるダイナミックフォベーションのサポートが可能になります。
- QRhi:レンダーごとのターゲットブレンディングがOpenGLでもオプションでサポートされるようになりました。
- QRhi:多くの整数および深度テクスチャーフォーマットのサポートを追加。
- QRhi:Vulkan上でアプリケーションが提供するwait/signalセマフォを渡すためのサポートを追加。これらは vkQueueSubmit と Present に渡されるため、複数のスレッドに依存し、シーングラフ レンダラーとの適切な同期を必要とする外部レンダリング/計算エンジンの統合が可能になります。
- QPdfWriter::author() プロパティを使用して、生成された PDF 文書の作成者を設定します。
Qt HttpServer モジュール
- QHttpServer は、 と プロパティを通して設定できるようになりました。現在、 の設定に対応しています。QHttpServerConfiguration configuration rateLimitPerSecond
Qt Multimedia モジュール
VideoOutput
とVideo
にendOfStreamPolicy
プロパティを追加し、ビデオストリームが終了したときに、アプリケーションが最後のフレームを出力に保持できるようにしました。VideoOutput
とVideo
にmirrored
プロパティを追加しました。
Qt Network モジュール
- SETTINGS_MAX_CONCURRENT_STREAMS HTTP/2 設定を制御するsetMaxConcurrentStreams を追加しました。
Qt Network Auth モジュール
- RFC 8628 で規定されている Device Authorization Grant を実装するQOAuth2DeviceAuthorizationFlow を追加しました。
- トークン更新の便利なサポートを追加しました。QAbstractOAuth2::autoRefresh,QAbstractOAuth2::refreshLeadTime,QAbstractOAuth2::accessTokenAboutToExpire() を参照。
- システム・ブラウザ以外のユーザー・エージェントを使いやすくしました。QOAuthUriSchemeReplyHandler::handleAuthorizationRedirect()を参照。
- 要求されたスコープと許可されたスコープの区別を簡単にするため、QAbstractOAuth2::requestedScopeTokens およびQAbstractOAuth2::grantedScopeTokens プロパティを追加しました。
- QOAuthHttpServerReplyHandler に HTTPS サポートを追加。QOAuthHttpServerReplyHandler::listen(const QSslConfiguration&, const QHostAddress&, quint16) を参照。
- リダイレクト URI のホスト名部分のカスタマイズを可能にするQOAuthHttpServerReplyHandler::setCallbackHost() を追加しました。
- QAbstractOAuth2::setNetworkRequestModifier() を追加し、送信前にネットワークリクエストを変更できるようにした。
- OpenID ConnectID トークンの取得を改善した。QAbstractOAuth2::idToken 、QAbstractOAuth2::nonce 、QAbstractOAuth2::nonceMode を参照。
- QAbstractOAuth2::serverReportedErrorOccurred() シグナルが追加され、以前のQAbstractOAuth2::error() シグナルは廃止されました。新しいシグナル名は、これらのエラーが一般的なエラーではなく、RFC 6749 で定義されているケースに対応していることを明確に示しています。
Qt Protobuf モジュール
- すべてのドキュメントを改善し、洗練されました。
- 生成されたヘッダーファイルのガードに使用されるメカニズムを指定する
HEADER_GUARD
オプションを追加した。 protobuf-unsafe-registry
機能を追加し、カスタム protobuf シリアライザーにアクセスする際のパフォーマンスと安全性を交換できるようにした。
Qt QML モジュール
- QML Language Server ドキュメント構造のアウトラインビューを提供するようになりました。これにより、クライアント(IDEやコードエディターなど)はqmlドキュメントの構造をインタラクティブなアウトラインとして表現し、オブジェクト、プロパティ、メソッド、その他のコード要素を階層的に表示することができるようになりました。
- qmlformatに最大行長機能を追加: qmlformatは、許容される最大行長に基づいて改行位置を制御するようになり、一貫性のある読みやすいQMLドキュメントを保証します。
Qt Quick モジュール
- アイテムやウィンドウのセーフエリアを管理するために、SafeArea 添付プロパティを追加しました。
- アイテムに剪断変形を適用する便利な方法として、Shearコンポーネントを追加しました。
- Qt Quick API になかったFontMetrics.capitalHeight プロパティを追加しました。
- C++ のQFontInfo クラスに一致する、フォント解像度の結果を取得するためのFontInfo タイプを追加しました。
- 使用中のグラフィックス API が OpenGL の場合に、QQuickPaintedItem の FramebufferObject レンダリング・モードのサポートを再導入。これは、QPainter のレガシー OpenGL ペイントエンジンを QQuickPaintedItems に使用する必要がある Qt 5 時代のアプリケーションへの移植支援として提供されます。
- ジオメトリが大きいシーンでメモリ使用量が急増しないように、シーングラフレンダラーのバッファプーリングロジックを最適化しました。さらに、特に OpenGL で実行する場合、アイテム数の多いシーンのオーバーヘッドが削減されました。
Qt Quick Controls モジュール
- ContextMenu を追加しました。これは、右クリックやコンテキストメニューキーなどのプラットフォーム固有のイベント時にコンテキストメニューを表示するために、任意のアイテムにアタッチすることができます。
- TextField TextArea と がデフォルトで提供されるようになりました。これらのタイプのカスタムコンテキストメニューをすでに持っている場合、 は(右クリックやコンテキストメニューキーで)独自のコンテキストメニューを開きません。ContextMenu ContextMenu
Qt Quick エフェクトモジュール
- 新しいRectangularShadow 要素で、丸みを帯びた矩形状のシャドウ/グローを高速に表示できるようになりました。APIはCSSのbox-shadowに似ており、色、オフセット、広がり、ぼかしの値が使えます。
Qt Quick 3Dモジュール
- 透明オブジェクトのレンダリングにWeightedBlended Order Independent Transparency (OIT)の実装を追加。
- 32ビット符号なし整数テクスチャフォーマットのサポートを追加。
- インスタンス化モデルのシャドウマップ境界の制御を改善。
- 新しい「ウルトラ」解像度設定による 4K シャドウマップのサポートを追加。
- GLSL ESフラグメントシェーダーにおいて、floatの中精度を強制するオプションを追加。主にパフォーマンスチューニングのためのツールとして提供。環境変数 QT_QUICK3D_MEDIUM_PRECISION をゼロ以外の値に設定します。他の種類のシェーダには影響しません(非ES GLSLも含まれます)。
- DebugView ポイントライトシャドウの境界を視覚化できるようになりました。
- 組み込みジオメトリをQt 3D からQtQuick3D に移植しました。PlaneGeometry SphereGeometry,CylinderGeometry,ConeGeometry,TorusGeometry がQtQuick3D.Helpers で利用可能になりました。
- Qt 3D からQtQuick3D.Helpers にExtrudedTextMesh を移植しました。
- マテリアルエディターでカスタムマテリアルとインスタンス化を使用するためのサポートを追加。
Qt Quick 3D XR モジュール
- 新しいXrHapticFeedback アイテムを通して、振幅、継続時間、周波数を使用するコントローラでのハプティック出力のサポートを追加しました。
- XrInputAction に新しいプロパティを追加し、すべてのハンドラ関数でテストすることなく条件付きでアクションを無効にできるようにしました。
- OpenXR用のMetalバックエンドを追加し、macOS上のMeta XR Simulatorでの実行をサポート。
- multiViewRenderingEnabled プロパティが読み取り専用になり、実行時にマルチビューレンダリングの切り替えができなくなりました。マルチビューレンダリングがサポートされている場合、アプリケーションの存続期間中有効になります。マルチビューレンダリングが不要な移植環境では、環境変数 QT_QUICK3D_XR_DISABLE_MULTIVIEW をゼロ以外の値に設定することで、マルチビューレンダリングを無効にできます。
Qt Quick VectorImage モジュール
- Qt SVG の現在のサポートに合わせ、カラーアニメーションと変形アニメーションの予備サポートを追加しました。
Qt SQL モジュール
- QSqlDriver 関連する インスタンスの接続名を返す新しい関数 () を追加しました。QSqlDatabase connectionName
- QSqlQueryModel Qt の外部からデータベースが変更された場合などに、 () を使ってデータベースをリフレッシュできるようになりました。refresh
Qt SVG モジュール
- QtSvg::Options に、アニメーションを無効にする3つの新しい値を追加しました。
- fill, stroke, transformプロパティのCSSアニメーションをサポート。
Qt VirtualKeyboard モジュール
- フリックキーを使う新しい日本語レイアウトを追加した。
- キー音量の調整機能を追加。
Qt WebEngine モジュール
- Qt が OpenGL RHI を使用する場合にも ANGLE を使用するように内部レンダリングを切り替えました。Chromeとのパフォーマンスやバグの類似性を改善。
- QWebEngineProfileBuilder QML 、プロファイルを作成する前に設定し、競合状態を回避するようにした。WebEngineProfilePrototype
- QWebEngineLoadingInfo isDownload プロパティを追加し、ロードがダウンロードに関連していることを示すようにした。
- QWebEngineUrlRequestInfo また、リクエストがダウンロードに関連していることを示す () メソッドを追加した。isDownload
- QWebEngineSettings およびQML に3つの新しい設定が追加されました。PrintHeaderAndFooter と PreferCSSMarginsForPrinting は印刷を設定するためのものです。また、TouchEventsApiEnabled は TouchEvents API をオフにするための設定です。WebEngineSettings
Qt Widgets モジュール
- QAbstractItemView に新しいプロパティ が追加され、dataChanged() 内で何かが変更された箇所を把握する代わりに、ビュー全体の更新を行うタイミングを指定できるようになった。これは、大きなモデルで多くのアイテムが変更された場合に特に便利です。updateThreshold
- QComboBox は、 プロパティを に設定することで、アイテムビューのデリゲートを使用してラベルを描画することができます。labelDrawingMode UseDelegate
- QHeaderView は、セクションのサイズが変更されたり、隠されたり、並び替えられたりしない限り、巨大なモデルのメモリ使用量を劇的に削減するように最適化されています。
- QWidget::accessibleIdentifier に設定された識別子は、支援技術や自動テストツールが特定のウィジェットを識別するために使用できます。
- QDockWidget のドック位置は、QDockWidget::dockLocation プロパティを使って明示的に設定することはできません。
- QStackedWidget noew は、新しいウィジェットがスタックに追加されると、 () シグナルを発行します。widgetAdded
Qt XML モジュール
- QDomNodeList iterator API を取得しました。
ツール
QDoc ドキュメンテーション・ジェネレーター
- QDocはマクロ引数でフォーマット・コマンドを受け付けるようになった。
- 作者は、
auto
でfn コマンドでドキュメント化された関数の基本的な戻り値の型をオーバーライドできるようになった。 - QDocがC++ヘッダーのコメントからドキュメントを生成できるようになりました。これは Qt 6.9 の QDoc でテクニカル・プレビューとして追加されたもので、ユーザーからのフィードバックをお待ちしています。QDoc の設定変数documentationinheadersを有効にして試してみてください。
- 新しいqmlenumeratorsfromコマンドにより、C++ の列挙から QML の列挙ドキュメントを生成することができます。
- generatelistコマンドとannotatedlistコマンドは生成されるリストのソート順をカスタマイズできるようになりました。
- deprecatedは将来のバージョンを受け入れ、QDocは将来のバージョンと認識した場合に適切なテキストを生成します。
- Clangライブラリの要件:QDocはLLVM 17のClangライブラリを必要とする。また、LLVM 18、19、20のClangライブラリーでも動作することが確認されている。
- QDocはcmakecomponent、cmakepackage、cmaketargetitemコマンドでサードパーティ・プロジェクトのCMakeの必要条件を調整できるようになりました。
- example.warnaboutmissingimagesとexamples.warnaboutmissingprojectfilesという設定変数で、example 関連の警告を設定できるようになりました。
- QDocがドキュメント内の画像にツールチップを生成できるようになりました。新しいusealttextastitle設定変数のドキュメントに、プロジェクトでこれを有効にする方法が説明されています。
プラットフォームの変更
ビルドシステムの変更
- Qt のビルドと CMake プロジェクトでの Qt の使用には、CMake バージョン 3.22 以降が必要になりました。
デスクトッププラットフォーム
Windows
- CBDT や COLRv1 などの絵文字フォントフォーマットのレンダリングをサポートしました。
LinuxのWaylandクライアント
- 新しい
xdg-toplevel-icon-v1
プロトコルに対応し、コンポジターがこのプロトコルにも対応している場合にQWindow::setIcon
が動作するようになりました。 - ウィンドウの基礎となる
wl_surface
が、その寿命を共有するようになり、ウィンドウが隠されたときに破棄されなくなりました。
モバイルプラットフォーム
アンドロイド
- APK 内の非圧縮ネイティブ リブをサポートし、
packagingOptions.jniLibs.useLegacyPackaging true
の必要性を削除しました。 - qt_add_android_permission() CMake 関数を導入。
- QT_ANDROID_COMPILE_SDK_VERSIONCMake プロパティを追加し、Java コードをビルドする SDK のレベルを設定します。
- アプリのアイコンを設定するQT_ANDROID_APP_ICONCMake プロパティを追加しました。
- QT_ANDROID_APP_NAMECMakeプロパティを追加して、アプリの名前を設定します。
- APIレベル31以上で、ロケーションとブルートゥースのパーミッションを分離。
- キューに入れられたバックグラウンド UI イベントの最大値を設定できるようにした。
- アプリを簡単にデプロイ、実行し、ターミナルからログを取得するスクリプトを追加。
- Qt Quick Android と QtQuickView用:
- QtAbstractItemModel に setData() と dataChanged() メソッドを追加しました。
- OnDataChangedListerner コールバック インターフェイスを追加しました。
- QtQuickViewContent:QtQuickViewContentオブジェクトを渡すonStatusChanged()オーバーロードを追加しました。
- Android Service から複数の埋め込みビューをサポート。
組み込みプラットフォーム
Boot to Qt
- Yocto 5.1 (Styhead) のサポートを追加しました。
- ターゲットハードウェアのサポートレベルが更新され、Tier 1 の新しいサポートボードが追加されました:
- NVIDIA Jetson AGX Orin Developer Kit (Boot to QtTier 2からアップグレード)。
- ターゲットハードウェアのサポートレベルが更新され、Tier 2用の新しいサポートボードが追加されました:
- Toradex Apalis iMX6 (Boot to QtTier 1からダウングレード)。
- ターゲットハードウェアのサポートレベルが更新され、Tier 3用の新しいサポート対象ボードが追加されました:
- Qualcomm RB3 Gen 2 Vision Kit (Boot to Qt).
- NXP i.MX 8M Mini LPDDR4 EVK (Boot to QtTier 2からダウングレード)。
- NXP i.MX 8M Nano LPDDR4 EVK (Boot to QtTier 2から格下げ)。
- NXP i.MX 8M Plus LPDDR4 EVK (Boot to QtTier 2 から格下げ)。
- 以下のボードはサポートされなくなりました:
- NVIDIA Jetson AGX Xavier Developer Kit (Boot to Qt).
- Amazon AWS EC2 ARM64 (Boot to Qt).
- TI SK-AM69 (Boot to Qt).
- NXP i.MX 8MQuad EVK (Boot to Qt).
- NXP i.MX 8QuadXPlus MEK (Boot to Qt).
- Qualcomm Robotics RB5開発キット(Boot to Qt).
リアルタイムOS
- RealTime OSのサポートは、LTSリリースのみ提供されます。LTS以外のリリースについては、プロフェッショナル・サービスを通じてのみサポートが提供されます。
API の変更点
このページでは、Qt 6.9 における 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.