Qt 6.12の新機能
Qt 6.12 で追加・復活したモジュール
Qt 6.12 では、以下のモジュールとツールが追加されました:
- Qt Qml デザインサポートモジュール。QML内でオブジェクトを登録および参照するための一連の型が含まれています。これは、将来的に提供される予定のQt Quick デザインツール向けです。
Qt 6.12の新機能
ActiveQt モジュール
特筆すべき変更点はありません。
Qt Bluetooth Module
- Android バックエンドは、BTLE アドバタイジングの開始時に、QLowEnergyAdvertisingParameters を通じて指定されたアドバタイジングの最小および最大間隔パラメータを反映するようになりました。
Qt Canvas Painter モジュール
- Qt Canvas Painterモジュールは Technology Preview 状態から移行し、現在は完全にメンテナンス(サポート)されています。
- このモジュールには、Qt Canvas Painter を基盤とする新しい QML API である `QtCanvas2D` が追加されました。この API は引き続き Technology Preview のままです。
- QCanvasPath SVG パス文字列を直接解析するためのaddPath() オーバーロードが追加されました。
- QCanvasPainter パス塗りつぶしにおける EvenOdd 塗りつぶしルールをサポートするため、QCanvasPainter::FillRule およびQCanvasPainter::setFillRule() が追加されました。
- QCanvasGradient 画像から直接グラデーションを作成するためのsetImage()が追加されました。
- QCanvasRadialGradient 非対称(2 中心)の放射状グラデーションをサポートするために、コンストラクタおよびsetInnerCenterPosition() /setOuterCenterPosition() が追加されました。
Qt CoAP モジュール
特筆すべき変更点はありません。
Qt Core モジュール'xml-ph-0000@deepl.internal' および 'xml-ph-0001@deepl.internal' のカスタマイズポイントが拡張され、xml-ph-000
- QRangeModelのRowOptions およびItemAccess カスタマイズポイントが拡張され、
headerData()、および行ごとおよび項目ごとのflags()がサポートされるようになりました。QRangeModel は、両方のカスタマイズポイントでカスタムかつ型安全な MIME タイプ処理、およびsupportedDragActions およびsupportedDropActions プロパティによるdrag'n'drop handling のサポートが追加されました。QRangeModel は、ロケールに応じたソートを行うsortCollator をサポートするsort()、および高速なコンテンツマッチングを行うmatch() を実装するようになりました。 - `QSharedPointer` の静的キャスト用の新しいフリー関数として、qSharedPointerStaticCast が追加されました。
- QSortFilterProxyModel DataChangeRelevanceFlag 列挙型と仮想メソッド () が追加され、サブクラスがソースの シグナルによって再フィルタリングまたは再ソートがトリガーされるかどうかを制御できるようになりました。dataChangeRelevanceFlags
dataChanged - 新しい `QAbstractItemModel::compareData()` は、アイテムビューのユースケース向けに特別に設計された、2 つの `QVariant` を比較するための新しい保護された API です。
- qfloat16 インクリメント演算子、デクリメント演算子、および単項のoperator+ が追加されました。
- QVariant rvalue 参照からのコンストラクタが追加されました。
- QMap およびQMultiMap は、6 つの比較演算子すべてを実装するようになりました。
- QVarLengthArray QList API に対応する ` ()` が追加されました。removeAt
- QDateTime 、QDate 、QTime のfromString() メソッド、およびQLocale のtoDateTime()、toDate()、toTime() は、多くの形式で処理が高速化された新しいパーサーを使用するようになりました。
- QTimeZone は、コンストラクタおよびisTimeZoneIdAvailable() において、CLDR-canonical IANA エイリアス ID を受け入れるようになりました。QTimeZone::availableTimeZoneIds() は、これらのエイリアスを含むようになりました。
- QFile::copy() は、オプションのQFileDevice::Permissions 引数を受け入れるようになりました。QSaveFile は、commit() が呼び出されるまで、要求された権限の適用を延期するようになりました。
- Qt::compareThreeWay() に、
std::pair用のオーバーロードが追加されました。 - QCalendarPermission WriteOnly アクセスモードが追加されました。
- QFileSystemWatcher FreeBSD 15 以降で
inotifyを使用できるようになりました。 - QStandardPaths macOS では、standardLocations() にシステム全体の
/Library/Preferencesディレクトリが含まれるようになりました。iOS では、PublicShareLocation が正しいパスを返し、TemplatesLocation がサポートされていないと正しく報告されるようになりました。 - QEasingCurve fromCubicBezier() が追加されました。これは、3次ベジェイージングカーブを作成するための便利なヘルパー関数です。
- QJsonObject cbegin() および () という STL スタイルの const イテレータが追加されました。 には、 および からの rvalue コンストラクタが追加されました。cend QJsonDocument QJsonArray QJsonObject
Qt D-Bus モジュール
特筆すべき変更点はありません。
Qt Graphs モジュール
- Qt Canvas Painter を 2D グラフのレンダリングバックエンドとして使用できるようになりました。configure 時に、
-feature-graphs-2d-high-performance-backendという configure フラグを指定して有効にしてください。 - 2D グラフ用の新しい対数軸タイプ「QLogValueAxis 」(QML ではLogValueAxis )が追加されました。
- QXYSeries QML からの宣言型データ入力用に、values 、valueMapping 、valueMin 、およびstepSize プロパティが追加されました。
- QPieSeries QMLからの宣言的なデータ入力のために、sliceData およびsliceLabels プロパティが追加されました。
- QValueAxis また、QLogValueAxis には、軸ラベルのテキストをカスタマイズするためのlabelPostFormat プロパティが追加されました。
- Q3DGraphsWidgetItem 3D グラフでのパン機能を有効にし、設定するためのpanEnabled およびdragMode プロパティが追加されました。
- QDateTimeAxis tickCount プロパティが追加されました。
Qt GRPC モジュール
- クライアント側のリクエスト圧縮が追加されました。新しいQtGrpc::CompressionAlgorithm 列挙型は、QGrpcChannelOptions::setRequestCompression()およびQGrpcCallOptions::setRequestCompression()を通じて選択し、送信メッセージを圧縮することができます。
- QGrpcChannelOptions にsupportedCompressionAlgorithms()、acceptedCompressionAlgorithms()、setAcceptedCompressionAlgorithms() を追加し、クライアントが
grpc-accept-encodingリクエストヘッダーで通知する圧縮アルゴリズム、およびサーバーの応答で受け入れる圧縮アルゴリズムを制御できるようにしました。 - 受信メッセージのサイズを制限するために、QGrpcChannelOptions およびQGrpcCallOptions にmaximumReceiveMessageSize() およびsetMaximumReceiveMessageSize() が追加されました。
Qt GUI モジュール
- QRhi に間接レンダリングのサポートが追加されました。
IndirectDrawBuffer型のバッファを作成できるようになり、QRhiCommandBuffer を通じて間接ドローコールを発行できるようになりました。 - QRhi ShaderDrawParameters 機能フラグが追加され、シェーダーの描画パラメータの組み込み型(例: )のサポートを照会できるようになりました。
gl_DrawID - QRhi Vulkan バックエンドは、デバイスの喪失に関する追加の詳細を報告するために、
VK_EXT_device_faultを使用するようになりました。 - QAccessibilityHints motionPreference 向けに、動作を軽減するアクセシビリティ設定用のプロパティが追加されました。
- QStyleHints toolTipWakeUpDelay が追加され、アプリケーションはツールチップが表示されるまでの遅延を照会または調整できるようになりました。
- QImageReader effectiveSize() が追加され、 () を考慮した画像サイズを返すようになりました。autoTransform
- QTextCursor::deletePreviousChar() (Backspace) が、マルチコードユニットの絵文字シーケンスを正しく処理するようになりました。
- 入力メソッドが画面全体を占有しないように要求するためのQt::InputMethodHint::ImhNoFullscreen が追加されました。
- Qt::InputMethodHint::ImhDecimalNumbersOnly を追加し、小数点を含む数字のみ入力できるようにし、負の数は入力できないようにしました。
Qt HTTP Server モジュール
- QHttpServerConfiguration モジュールに、同時接続の総数を制限するsetMaximumConnections() および IP アドレスごとの接続数を制限するsetMaximumConnectionsPerHost() が追加されました。
Qt Image Formats モジュール
特筆すべき変更点はありません。
Qt Lottie Animation モジュールxml-ph-0000@deepl.internal() を追加し、同時接続の総数を制限できるようにしました。また、xml-ph-0001@deepl.internal() を追加
- Lottieテキストレイヤーのサポートが追加され、グリフパスのレンダリングも含まれるようになりました。
- Lottieの楕円、長方形、ポリスターのシェイプ要素におけるアニメーション化された寸法、グラデーションストローク、レイヤーマスク、およびレイヤーの「自動方向調整」機能のサポートが追加されました。
- Lottie のタイムリマッピングおよびタイムストレッチ機能のサポートが追加されました。
- VectorImage 内で Lottie アニメーションの再生を制御するための `LottieVectorImageController ` が導入されました。このタイプは、currentFrame 、frameRate 、startFrame 、endFrame プロパティに加え、play()、pause()、gotoAndPlay() などの再生メソッドを公開しています。
Qt MQTT モジュール
特筆すべき変更点はありません。
Qt Multimedia モジュール
- QScreenCapture およびQWindowCapture には、キャプチャフレームレートを制限するためのmaximumFrameRate プロパティが追加されました。このプロパティは、ScreenCapture およびWindowCapture QML タイプでも利用可能です。
- QAudioSource およびQAudioSink には、ネイティブオーディオバッファの周期サイズを照会および制御するためのnativePeriodFrameCount() およびsetNativePeriodFrameCount() が追加されました。
- QMediaCaptureSession::setNativeVideoSource() およびGStreamerVideoSource QML 要素が追加され、カスタム GStreamer パイプラインからQMediaCaptureSession へビデオフレームを送信できるようになりました。
- QMediaMetaData::ThumbnailImage は非推奨となりました。バックエンドはこれに対してデータを設定しなくなりました。代わりにCoverArtImage を使用してください。
- QSoundEffect URLが変更されない場合でも、setSource() の後に常にsourceChanged を出力するようになりました。
Qt Network モジュール
- TLS キー素材エクスポーター (RFC 5705) を公開するために、QSslKeyingMaterial および QSslConfiguration::keyingMaterial() /setKeyingMaterial() が導入されました。
- QHostInfo clearCache() が追加され、プログラムで DNS 結果キャッシュをフラッシュできるようになりました。
- QHttpHeaders QDataStream ストリーム演算子、 ヘッダーを解析するための ()、およびそれを設定するための () が追加されました。新しい QHttpHeaderRange クラスは、そのヘッダー内の 1 バイトの範囲を表します。
RangerangeValues setRangeValues - OpenSSL TLS バックエンドは、OpenSSL 4 に対するビルドをサポートするようになりました。
Qt Network Authorization モジュール
特筆すべき変更点はありません。
Qt OPC UA モジュール特筆すべき変更点はありません。
特筆すべき変更点はありません。モジュール
Qt OpenAPI モジュール
- qt_add_openapi_client()に、クライアントコードとともに Doxygen ベースのドキュメントを生成するためのオプション `
GENERATE_DOCUMENTATION` および `DOCUMENTATION_OUTPUT_DIRECTORY` が追加されました。 - oneOfスキーマ機能のサポートが追加されました。
- 生成されるモデルのプロパティゲッターの名前が変更されました。Q_PROPERTY は、YAML ファイルで使用されているものと同じプロパティ名を公開するようになりました。
- 生成されるクライアント API メソッドは、もはや仮想メソッドではなくなりました。
Qt Positioning モジュール
- QGeoSatelliteInfo::SatelliteSystem に、IRNSS および SBAS 衛星システムのエントリが追加されました。
Qt Print Support モジュールIRNSS および SBAS 衛星システムのエントリが追加されました。
特筆すべき変更点はありません。
Qt Protobuf モジュール
- 生成されたメッセージクラス内の Qt プロパティは、デフォルトでFINAL 修飾子が付与されるようになりました。これにより、QML ツールはパフォーマンスの最適化を適用し、より効率的なコードを生成できるようになります。以前の動作に戻すには、qt_add_protobuf()の新しいオプション
GENERATE_NON_FINAL_PROPERTIESを使用してください。
Qt Qml モジュール
- QQmlEngine に、外部で作成された C++ オブジェクトを QML シングルトンとして登録するための `setExternalSingletonInstance()` が追加されました。QML_UNCREATABLE は、QML_SINGLETON と組み合わせて使用できるようになりました。
- string.arg() QML の `` は、JavaScript の規約に合わせて、複数の引数を受け入れるようになりました。
- QML で HTML の特殊文字をエスケープするためのグローバル関数 `Qt.escapeHtml()` が追加されました。
- 必須のプロパティが欠落しているコンポーネントをインスタンス化する場合、エンジンは不完全なオブジェクトを黙って構築するのではなく、エラーを報告するようになりました。
- QQmlProperty は、 qmlProperty と呼ばれる名前付き値型です。QML では、プロパティ型、関数の引数、または戻り値の型として使用できます。
- QtQml.Models import: `SortFilterProxyModel ` に、RangeFilter 、RegExpFilter 、AllOfFilter 、AnyOfFilter の複合フィルタ型が追加され、ロール名を個別の引数として受け入れるように改良された `FunctionFilter ` が追加されました。
- Qt.labs.qmlmodels import:TreeModel に、insertRow() およびmoveRows() メソッドが追加されました。
- Qt Qml コンパイラ:
QQmlSA::FixSuggestion::hint()、QQmlSA::FixSuggestion::setHint()が削除されました。QQmlSA::FixSuggestion::fixDescription()はQQmlSA::FixSuggestion::description() に名称変更されました。
Qt Quick モジュール
- Color QML シングルトンが追加され、色操作のためのユーティリティ関数が提供されるようになりました。
- AnimatedImage type には、loops 、finishBehavior プロパティ、およびfinished() シグナルが追加されました。
- Text 型は、
RichTextモードの HTML マークアップ、または C++ API のQTextCharFormat を通じて適用できるすべてのQTextCharFormat::UnderlineStyle 値(DashUnderline、WaveUnderline、SpellCheckUnderlineなど)を正しくレンダリングするようになりました。以前は、すべてのアンダーラインスタイルが実線としてレンダリングされていました。 - ShapePath 型にstrokeGradient プロパティが追加されました。
- Rectangle::color QMLで
undefinedをプロパティに割り当てることで、デフォルト値(白)にリセットできるようになりました。 - Qt.labs.folderlistmodel 内のFolderListModel タイプに、showDot およびshowDotDot プロパティが追加されました。
- QtQuick.VectorImage のVectorImage 型には、asynchronous 、status 、retainWhileLoading 、およびgeneratedItem プロパティが追加されました。
Qt Quick コントロールモジュール
QtQuick.Controls.Nativeスタイルが追加されました。import QtQuick.Controls.Nativeは、コンパイル時にコンパイル対象のプラットフォームに最適なスタイルを選択します。これにより、コンパイル時のスタイル選択の利点と、アプリケーションにプラットフォーム固有のルックアンドフィールを持たせることができるという利点を両立させています。- ToolTip 自動ツールチップの表示/非表示を制御するための `policy ` プロパティが追加されました。
- ComboBox highlightOnHover プロパティが追加されました。
- RangeSlider 2つのハンドルが交差することを許可または禁止するためのcrossingEnabled プロパティが追加されました。
- Menu separatorsCollapsible プロパティが追加されました。
- MenuItem 関連付けられたAction からキーボードショートカットを表示するようになりました。
- SearchField TextInput が空の場合、キーによるナビゲーションが可能になりました。
- 利便性を高めるため、既存のTextField API の一部(selectTextByMouse、selectedText、selectionStart、selectionEnd、cursorPosition、select()、selectWord()、deselect())がSearchField に追加されました。
Qt Quick ダイアログモジュール
特筆すべき変更点はありません。
Qt Quick Effects モジュール
特筆すべき変更点はありません。
Qt Quick Test モジュール
- TestCaseの `optional ` プロパティは、Qt Quick Test では非推奨となっています。代わりに `skip()` を使用してください。
Qt Quick 3D モジュール
- 手続き型空のレンダリングおよび画像ベースの照明データの生成を行うためのSkyMaterial QMLタイプが追加されました。
- QtQuick3D.Helpers のインポートにQuadTextureProvider が追加されました。これは、カスタムフラグメントシェーダーを使用してクワッドテクスチャをレンダリングするために使用されるQMLタイプです。
- Model GPU インスタンス化を使用する際、詳細度 (LOD) を手動で制御するためのinstancingLodFactor プロパティが追加されました。
- ExtendedSceneEnvironment スクリーンスペースの反射をより細かく制御するための `ssrThickness ` および `ssrMaxSteps ` プロパティが追加されました。
- RuntimeLoader 動的に読み込まれたシーン内で、名前またはタイプによってオブジェクトを検索するための `query()` および `queryAll()` メソッドが追加されました。
Qt Quick 3D XR モジュール
- モノビュー設定(
XR_VIEW_CONFIGURATION_TYPE_PRIMARY_MONO)のサポートが追加され、Qt Quick の3D XRアプリケーションをARメガネなどの2D XRデバイス上で実行できるようになりました。
Qt Quick 3D 物理モジュール
- 物理体を拘束するための5つのジョイントタイプが追加されました:DistanceJoint 、FixedJoint 、PrismaticJoint 、RevoluteJoint 、およびSphericalJoint 。これらはすべて、共通の基底型であるPhysicsJoint を共有しています。
Qt Remote Objects モジュール
- registryUrl およびpersistedStore プロパティには、変更通知シグナルが追加されました。
Qt SCXML モジュール
特筆すべき変更点はありません。
Qt Sensors モジュール
特筆すべき変更点はありません。
Qt Serial Port モジュール
特筆すべき変更はありません。
Qt Spatial Audio モジュール
特筆すべき変更はありません。
Qt Serial Bus モジュール
特筆すべき変更はありません。
Qt SQL モジュール
特筆すべき変更はありません。
Qt SVG モジュール
- QMovie およびAnimatedImage で、アニメーション付き SVG ファイルがサポートされるようになりました。
Qt Labs StyleKit モジュール
- QWidget アプリケーションにStyleKitベースのスタイリングを適用する、QStyle のサブクラスであるQStyleKitStyle が導入されました。
- このスタイルでは、RoundButton およびMenuSeparator というQt Quick コントロール型の実装が提供され、汎用的なフォールバックに取って代わりました。
Qt TaskTree モジュール
- QtTaskTree::For には、反復回数として
qsizetypeを受け取るオーバーロードが追加されました。これは、For(RepeatInterator(n))のショートカットとして使用できます。 - QtTaskTree::Forever QtTaskTree::Group への暗黙的な変換が可能になりました。
- QtTaskTree::ListIterator QList を返すゲッター関数を受け取るオーバーロードが追加されました。
Qt Test モジュール
- ベンチマーク結果には、測定バックエンド(時間、CPU ティック、イベント、Valgrind)間の分散と標準偏差が含まれるようになりました。
- プレーンテキストのベンチマークロガーは、一貫性を保つために、浮動小数点数の結果を科学表記でフォーマットするようになりました。
- コマンドラインで、有効なテスト関数とともに存在しないテスト関数が指定された場合でも、有効なテストは実行されます。
Qt Virtual Keyboard モジュール
特筆すべき変更点はありません。
Qt WebEngine モジュール
- QWebEngineNavigationRequest ユーザーによるナビゲーションとプログラムによるナビゲーションを区別するために、userInitiated プロパティが追加されました。
- QWebEngineProfile PKCS#11 ハードウェアトークンのロック解除を行うためのコールバックを提供する setCryptoModulePasswordFunction() が追加されました。
Qt WebSockets Module
特筆すべき変更点はありません。
Qt PDF モジュール
- QPdfSearchModel 検索が「実行中」、「アイドル状態」、または「完了」のいずれの状態にあるかを追跡するための status プロパティと Status 列挙型が追加されました。
- QPdfView カーソル位置を中心とした、Control キーとマウスホイールによるズームに対応しました。
- render() には、画像形式と背景色を指定するためのオプション引数が追加されました。
Qt WebView モジュール
- WebView は、Android、iOS、macOS、および Windows 上で、Qt リソースシステム(
qrc:/URL)からコンテンツを読み込めるようになりました。
Qt Widgets モジュール
- QTreeView モジュールにQTreeView::itemDecorationRect()が追加されました。これは、指定されたインデックスに対応する装飾(アイコン)のバウンディング矩形を返します。
- QStyle::StandardPixmap タブバーのスクロールボタン用に、QStyle::SP_TabScrollLeftButton 、QStyle::SP_TabScrollRightButton 、QStyle::SP_TabScrollUpButton 、およびQStyle::SP_TabScrollDownButton が追加されました。
- QDialogButtonBox タブバーのスクロールボタン用に、QDialogButtonBox::standardButtonText() およびQDialogButtonBox::standardButtonShortcut() が追加されました。これらは、それぞれQDialogButtonBox::StandardButton のテキストとショートカットを返します。
- macOSでは、QMainWindow の「統一されたタイトルとツールバー」モードが刷新され、背景のスタイリングにエフェクトビューが使用されるようになりました。
Qt XML モジュール
特筆すべき変更点はありません。
ツール
Qt Assistant
- Qt Assistant ダークカラースキームが有効な場合、オンラインのQtドキュメントの動作と同様に、ライトテーマおよびダークテーマのQt SVG図が正しく表示されるようになりました。
QML コマンドラインツール
- qmllintに
--only-explicit-categoriesオプションを追加し、すべてのデフォルトの警告を抑制するようにしました。 - 登録済み型のプロパティやメソッドで使用される未登録の型は、qmltypes に「opaque」型として記録されるようになりました。これにより、ツールでの警告が回避され、qmlls でのオートコンプリートや定義への移動が機能するようになり、より多くの場所で C++ へのバインディングコンパイルが可能になります。
- qmllintおよびqmllsにおいて、未知の型について、その型のバインディングや使用のたびに警告を生成するのではなく、1 回のみ警告を表示するように変更しました。
- qmllintおよびqmllsに、以下の項目に関する新しい警告を追加しました:
- QML 型のメンバーがシャドウされている場合。
- 互換性のないファイル選択バリアント(オプトイン)。
- 再帰的にインスタンス化された QML 型。
- qmldir または
QT_QML_SOURCE_TYPENAMEの名前ではなく、ファイル名で参照されている QML 型。 - 1つ以上の引数を取る
new Array()オーバーロードのJavaScriptでの使用。
- QML Language Server に以下の機能を追加しました:
- コードアクションを介してコンポーネントをローダーにラップする。
QML_FOREIGN経由で宣言された型の C++ 定義を検索する。- QML タイプ情報のバックグラウンド再構築中の進行状況を表示する。
QDoc ドキュメントジェネレータ
- C++20のコンセプト:新しい \concept topic コマンドは、C++20 のコンセプト専用のリファレンスページを生成します。これには、そのコンセプトによって制約される、ドキュメント化された型や関数のリストが含まれます。 C++の概要にあるコンセプトのリファレンスは、HTMLおよびDocBook出力においてこれらのページにリンクされ、コンセプトによって直接制約されるテンプレートパラメータ(
template <Integral T>など)には、typenameキーワードの代わりにコンセプト名が表示されます。コンセプトへのリンクは、.indexファイルを介してモジュール境界を越えて機能します。 enable_if- ベースの SFINAE 制約は、不透明な無名のブール型テンプレートパラメータではなく、読みやすいrequires節として表現され、Qt 6.11 で導入された C++20 の requires 節のサポートを拡張しています。関数に明示的なrequires節も存在する場合、これら 2 つは組み合わされます。- 明示的にデフォルト値が設定された関数や削除された関数には、シノプシスに
[default]および[delete]タグが付与されますが、コンパイラによって生成された特殊メンバー関数には[implicit]タグが付与されます。これらのタグはcppreference.comにリンクしています。 \fn ブロックを持たない場合、QDocは警告を出さずにドキュメントを自動生成します。明示的なドキュメントは生成されたテキストを上書きし、設定変数`showautogenerateddocs`をfalseに設定すると、出力から省略されます。 - QDoc は、引数依存のルックアップを通じてのみ見つけることができる「隠しフレンド」と、単にアクセス権を付与するだけのフレンド宣言とを区別します。行外で定義されたものを含め、隠しフレンドについては、クラス修飾名ではなく、
\fn operator==(const MyClass &, const MyClass &)のような自然なフリー関数構文を使用してドキュメント化してください。 - 統一された表が、 \compares および \compareswith コマンドによって生成される、散在した比較ドキュメントの段落に代わり、統一された表が表示され、クラスがどの型と比較されるか、また各関係にどの比較カテゴリが適用されるかが一目でわかります。
- `QDoc` \a コマンドは、テンプレートパラメータ名の妥当性チェックを行うようになりました。QDocは、クラスや型エイリアス内のドキュメント化されていないテンプレートパラメータ、および関数内のドキュメント化されていない非型パラメータやテンプレート・テンプレートパラメータについて警告を出します。
- `status` \preliminary コマンドによって生成されるステータス記述子とメッセージを、予備的な設定変数でカスタマイズできます。これにより、デフォルトの表現の代わりに「Technology Preview」などの用語を使用することが可能になります。ステータスコマンドの優先順位は一貫しています。
\preliminaryは\modulestateを、\internalは両方を上書きします。 \moduleまたは\qmlmoduleトピックに設定されたステータス(\preliminaryや\deprecatedなど)は、メンバーが独自のステータスを設定していない限り、モジュールのメンバーに伝播されます。- 新しい \qmluncreatabletype トピックコマンドは、QML タイプシステムに登録されているがインスタンス化できない QML タイプを文書化します。QDoc は、
QML_UNCREATABLEマクロで注釈が付けられたタイプも自動的に検出します。 - アタッチされたプロパティ、シグナル、およびメソッドは、「すべてのメンバー」ページだけでなく、メインの QML リファレンスページにも注釈が付けられています。
- ` \qmlmethod コマンドには完全なシグネチャが必要です。戻り値の型が欠落している場合や、パラメータリストの解析に失敗した場合は、QDoc によって警告が表示されます。
- クラスドキュメント内の include 文は、Clang によって報告された実際のヘッダーファイル名を反映しています。Qt スタイルの利便性ヘッダー(
<QString>など)を使用しているプロジェクトは、引き続き自動的に動作します。 - 各プロジェクトには、ベース出力ディレクトリに 1 つの
.indexファイルが生成され、フォーマット固有のサブディレクトリにあるフォーマットごとのコピーが置き換えられます。インデックス設定変数内の相対パスは、他のパス変数と同様に、.qdocconfファイルの場所を基準として解決されます。 - 生成されたHTMLファイルには、ページの種類(クラス、QMLタイプ、モジュール、例など)に基づいた
<meta name="keywords">エントリが自動的に含まれており、後処理やサイトマップの生成が容易になります。コードブロックには、highlight.jsの構文強調表示と互換性のあるタグが付けられています。 - ドキュメント作成に関する細かな改善点として、 \meta
qdoc-suppress-inheritanceを使用すると、ドキュメント作成目的のみで基底クラスを継承する型について、「Inherits:」行の表示が抑制されます。 \list 開始値が 0 以下の場合も正しく処理されます。また、\#は、\lのリンク先において、リテラル文字「#」を表します。さらに、 \details ドキュメントに記載された中括弧で囲まれたサマリー引数の使用を強制します。 - LLVM/Clang 22 との互換性が追加されました。
Qt Linguist
- lupdate は、
.tsファイル内の既存の改行コードを保持するようになりました。Windows では、CRLF 改行コードを含むファイルは CRLF のままその場で更新され、LF 改行コードを含むファイルおよび新規ファイルは LF を維持します。 - Qt Linguist 必要に応じてオンラインのWebドキュメントを利用できる新しいオプション -web-help が追加されました。
Resource Compiler (rcc)
- rcc は、コンテンツベースの SHA256 ハッシュを使用してリソースデータの重複排除を行うようになりました。Qt リソースコレクションに埋め込まれた同一のファイルは 1 回のみ保存されるため、アプリケーションのソースコードを変更することなく、コンパイル済みリソースのサイズを削減できます。
プラットフォームの変更点
ビルドシステムの変更
Qtのビルド
- Qtのビルドには、CMake 3.25以降が必要になりました。
- C++ ランタイムライブラリを静的にリンクするための CMake 機能「
static_compiler_runtime」が追加されました。Windows (MSVC) では、これによりハイブリッド CRT 方式が使用され、Visual C++ 再配布パッケージへの依存が解消されます。 - Android向けQtのビルドでは、Qt JARターゲットに対して
javacを直接呼び出す代わりに、Gradleを使用するようになりました。
CMake API
- Qt を使用するには、CMake 3.25 以降が必要になりました。
- 以下の CMake API は、テクノロジープレビューの段階を脱し、完全にサポートされるようになりました:qt_finalize_project()、qt_extract_metatypes()、qt_deploy_translations()、QT_TARGETS_FOLDER、QT_RESOURCE_PREFIX、QT_DEPLOY_SUPPORT、およびQT_ENABLE_VERBOSE_DEPLOYMENT。
qt_no_entrypointターゲットプロパティは、QT_NO_ENTRYPOINTに名称変更されました。下位互換性を確保するため、旧名称も引き続き認識されます。- CMakeポリシー `
QTP0006` が追加されました。これを `NEW` に設定すると、`qt_generate_wayland_protocol_client_sources()` および`qt_generate_wayland_protocol_server_sources()` のデフォルト値が、`PUBLIC_CODE` ではなく `PRIVATE_CODE` になります。 - qt_add_shaders()の進行状況メッセージは、
NOTICEではなくDEBUGレベルでログに出力されるようになり、デフォルトのビルド出力からは表示されなくなりました。以前の動作に戻すには、CMake に--log-level=NOTICEを指定してください。 - qt_add_qml_module()に、ビルドディレクトリ内での自動的な
qt.conf生成を抑制するNO_GENERATE_QTCONFオプションが追加されました。 - ビルドシステムでは、QMLモジュールを含む各実行ファイルに対して、<exe>_qmlpreviewターゲットが提供されるようになりました。このターゲットを「ビルド」すると、ビルドシステムは適切な引数を指定してqmlpreviewユーティリティを起動し、実行ファイルのQMLプレビューを可能にします。特に、.qrcファイルのパスを自動的に解決します。
- 2つの新しいターゲット値、QT_WINDOWS_APP_PROJECT_IDENTIFIERおよびQT_WINDOWS_APP_PROJECT_EXECUTION_LEVEL が利用可能になりました。以下の「Windows」のセクションも参照してください。
デスクトッププラットフォーム
Windows
- CMake プロジェクトでは、qt_add_executable() を使用してビルドされた Windows 実行ファイルに対して、アプリケーションマニフェストが自動的に生成・埋め込まれるようになりました。このマニフェストは、Windows 10/11 との互換性を宣言し、長いパスへの対応を有効にし、UAC の実行レベルを設定します。 生成されるマニフェストは、2つの新しいCMakeターゲットプロパティによって制御されます。QT_WINDOWS_APP_PROJECT_IDENTIFIERはアセンブリ識別名を設定し、QT_WINDOWS_APP_PROJECT_EXECUTION_LEVELは実行レベルを設定します。詳細については、「Qt for Windows - デプロイメント」を参照してください。
- windeployqtには、Windows Store appxパッケージとしてパッケージ化に適した
AppxManifest.xmlを生成するための--appxおよび--appx-certificateオプションが追加されました。 - QOperatingSystemVersion::Windows11_25H2 (10.0.26200) が、名前付き OS バージョン定数として追加されました。
- Windows では、プラットフォームプラグインが、常に sRGB を報告するのではなく、
ColorProfileGetDisplayDefaultを通じて各画面の ICC プロファイルから色空間を導出するようになりました。 - DirectWrite フォントバックエンドは、各フォントの GASP テーブルを読み取り、フォントおよびポイントサイズごとに適切なアンチエイリアシング戦略を選択するようになり、フォントデザイナーの意図により忠実に沿うようになりました。
- 現在の Intel GPU ドライバーでは、シェーダーのディスクキャッシュが再び有効になりました。Windows 上の Intel グラフィックスでは、数年にわたり無条件に無効化されていましたが、現在は代わりにドライバーのバージョンチェックが行われるようになり、最新の Intel ハードウェアでのQt Quick の 3D パフォーマンスが向上しています。
- QWizard システムがダークモードの際、Aeroウィザードスタイルが正しくレンダリングされない問題に対処し、適用されなくなりました。
- Visual Studio 2026では、ARM64ECが完全にサポートされるようになりました。インストーラーパッケージはありません。Qt WebEngine 、QtWebView 、Qt Quick 3D Physicsなどの一部のモジュールはサポートされていません。
Linux
- QDesktopServices::openUrl()は、利用可能な場合、
xdg-openやその他のフォールバックよりも、org.freedesktop.portal.OpenURIXDGデスクトップポータルサービスを優先するようになりました。このポータルの動作は、以前に使用されていたアプリケーションとは異なる場合があります。 - ポータルが利用できない場合に使用されるフォールバックが更新されました。Plasma 6 の
kde-openが認識されるようになった一方で、KDE 3 時代のkfmclientに対するサポートは廃止されました。 - 新しいmotionPreference プロパティは、デスクトップ設定から値が設定されます。具体的には、
org.freedesktop.appearanceポータルネームスペース内のreduced-motionキー、およびGNOMEのorg.gnome.desktop.interfaceenable-animations設定です。 - ネイティブの GTK3 フォントダイアログは、スケーラブルフォントと非スケーラブルフォント、および等幅フォントとプロポーショナルフォントの両方について、QFontDialog フォントフィルタリングオプションを反映するようになりました。
- AT-SPI アクセシビリティブリッジは、展開済みおよび展開可能な状態の変更について、支援技術に通知するようになりました。
- fontconfig 2.17.1 以降で実行する場合、Qt リソースから追加されたフォントが再び正しく登録されるようになりました。
- X11 では、ツールチップウィンドウが表示されるたびに再作成されることはなくなりました。
- QNetworkProxy libproxy バックエンドを使用する場合、
*_PROXY環境変数内のsocks5hスキームを認識するようになりました。
macOS
- QScreen::grabWindow() は、非推奨となった `
CGDisplayCreateImageForRect` の代わりに `ScreenCaptureKit` を使用するようになりました。API を初めて使用する際に、権限の確認プロンプトが表示されます。 - QWindows フリップされていない
NSViewに親として配置された は、親ビューのサイズ変更時にも、親ビューの左上隅に対する相対的な位置を維持するようになりました。 QCocoaNativeInterface::setEmbeddedInForeignView()Qtのビュー階層を外部のNSViewに埋め込むために` `を使用することは、もはや必要ではなく、サポートもされなくなりました。Qtがこれを自動的に管理するようになりました。- 静的 Qt ビルドに基づいて構築されたサンドボックス化されたアプリは、Apple プラットフォーム上でデフォルトで再配置可能になりました。
- QMainWindowの統一されたタイトルおよびツールバーモードは、非推奨となったテクスチャ付き
NSWindowスタイルの代わりに、Qt::ExpandedClientAreaHint およびQt::NoTitleBarBackgroundHint を介して実装されるようになりました。 - QStandardPaths::standardLocations() には、
ConfigLocation、GenericConfigLocation、およびAppConfigLocationに対して、システム全体の/Library/Preferencesディレクトリが含まれるようになりました。
Linux上のWaylandクライアント
- セッション復元のための
XdgSessionManagerWayland プロトコル拡張のサポートが追加されました。 - bradient クライアントサイド装飾テーマで、最小化、最大化、および閉じるボタンのヒントが表示されるようになりました。
Wayland コンポジター
linux-dmabuf-v1の安定版プロトコル(バージョン4)のサポートを追加しました。これを使用するには、クライアントバッファ統合として「linux-dmabuf-v1」を選択してください。互換性のため、以前の実装(バージョン3)は「linux-dmabuf-unstable-v1」という名前で引き続き使用可能です。
HarmonyOS
Qt 6.12 では、HarmonyOS(OpenHarmony API レベル 23、HarmonyOS 6.1.0)のサポートがテクノロジープレビューとして導入されました。Vulkan はサポートされていますが、アクセシビリティおよびEmbeddedUIExtensionAbility はまだ利用できません。
HarmonyOS 上で Qt アプリケーションをビルドおよびデプロイするために、以下のツールと CMake 関数が提供されています:
- harmonydeployqt は、Qt アプリケーションを HarmonyOS アプリケーションパッケージ (HAP) としてパッケージ化し、必要な Qt ライブラリやプラグインをコピーし、
build-profile.json5およびmodule.json5メタデータを生成し、HAP 署名設定の埋め込みをサポートします。 harmonyostestrunnerhdc経由で、接続された HarmonyOS デバイスまたはエミュレータ上で Qt 自動テストを実行します。これは からトリガーされます。ctest- qt_add_harmonyos_permission() は、アプリケーションに必要な HarmonyOS 権限を宣言します。
HarmonyOS へのデプロイに関する主要な CMake ターゲットのプロパティには、以下が含まれます:
- QT_HARMONYOS_EXTRA_LIBS— HAPにバンドルする追加の共有ライブラリ。
- QT_HARMONYOS_EXTRA_PLUGINS— デプロイする追加の Qt プラグイン。
- QT_HARMONYOS_PACKAGE_SOURCE_DIR— HAPのビルド前に、生成されたHarmonyOSプロジェクトテンプレートに内容がマージされるディレクトリ。
既知のプラットフォームの制限事項の完全なリストについては、Qt for HarmonyOS のプラットフォーム制限事項に関するWiki ページを参照してください。
モバイルプラットフォーム
Android
Android向けQt
- Gradle を 9.5.1 に、Android Gradle プラグインを 9.2.1 に更新しました。
- デフォルトのターゲット SDK バージョンを Android 17(API レベル 37)に更新しました。
- Android 13以降における予測バックジェスチャーのサポートを追加しました。Qtは
OnBackInvokedCallbackを通じてバックイベントを配信し、デフォルトでandroid:enableOnBackInvokedCallbackマニフェスト属性を有効にします。 - Gradle マルチモジュールビルドのサポートを追加しました。これはQT_ANDROID_GRADLE_MULTI_MODULE で有効になります。これはPlay Feature Delivery の基盤となります。CMake がandroiddeployqtやサードパーティ製ツールを使用せずにデプロイパイプライン全体を処理するため、ビルドがより高速かつ簡素化されます。
- QT_ANDROID_GRADLE_MULTI_MODULE の採用に伴い、
QT_USE_ANDROID_MODERN_BUNDLEという CMake 変数は非推奨となりました。下位互換性のため、旧名称も引き続き認識されます。 - Qt::InputMethodHint::ImhNoFullscreen 、ImhDecimalNumbersOnly 、およびImhNoEditMenu の入力メソッドヒントのサポートが追加されました。
- 「戻る」キーを押すと、アプリケーションが終了するのではなく、バックグラウンドに移行するようになりました。「戻る」キーおよび「戻る」ジェスチャーを参照してください。
- TalkBackのアクセシビリティが改善されました:
- Qt が
ACTION_SHOW_ON_SCREENアクションに応答するようになりました。 - Qtは、スクロールされたビューポートおよびスクロール位置の変更を報告するようになりました。
- Qtは、expandable状態およびexpanded状態をサポートするようになりました。
- アクセシビリティフォーカスがテキスト入力フィールドに移動しても、ソフトキーボードが開かなくなりました。
- motionPreference のヒントが、システムの「Remove animations 」設定を反映するようになりました。
- Qt が
- androidtestrunner は、
--serialおよび--outputオプションを認識し、テスト実行中のデバイスの切断を検出し、クラッシュおよび「アプリケーションが応答しない (ANR)」に関する診断情報をより詳細に表示するようになりました。 - Qt は、バンドルされた FFmpeg ビルドで OpenSSL ライブラリが必要な場合、
OPENSSL_ROOT_DIRまたは vcpkg を通じてそのライブラリを検索し、自動的にデプロイするようになりました。 - Gradle テンプレートでは、
resConfig "en"を強制しなくなりました。
Qt Quick Android用
iOS
- QStandardPaths::PublicShareLocation これにより、以前は「Documents」ディレクトリ内に合成されていたパスではなく、
<APPROOT>/Public(NSSharedPublicDirectoryと一致)が返されるようになりました。 - standardLocations(
PicturesLocation) には、書き込み可能な Documents/Pictures パスに関する重複エントリがもはや含まれていません。 - QStandardPaths::TemplatesLocation 既存のドキュメントに記載されている通り、iOS ではサポートされていないことが正しく報告されるようになりました。
組み込みプラットフォーム
Boot to Qt および Qt Onboard
- Qt 6.12 LTS 以降、Qt Online Installer または Qt アカウントからのプリビルド済みBoot to Qt イメージのダウンロードは利用できなくなりました。
バイナリの代わりに、コンテナベースの2つの配布形態が導入されました:
- ビルドコンテナ:必要なビルドツールがすべてあらかじめインストールされた、すぐに使える環境です。これにより、ターゲットハードウェア向けのYoctoベースのLinuxイメージを迅速にビルドすることができます。
- デモコンテナ:Qt Demo Launcherを含み、Qtの機能をすぐに体験できる厳選されたデモセットが収録されています。
これらのコンテナは、Qt 6.12 LTSのパッチリリースサイクル中に段階的に導入され、Qt 6.12.4のリリースに先立ち、コンテナベースの提供体制が完全に整います。
- 新しいプラットフォーム:
- Orange Pi 2
- NXP i.MX95
- Qualcomm Dragonwing IQ6
- Qualcomm Dragonwing IQ9
- Renesas RZ/G3E
リアルタイムOS
QNX
- QNX での Vulkan サポートが追加されました。
- Qt Multimedia QNX 8.0 上でビルドできるようになりました。QNX SDP 8.0 向けのオーディオバックエンドがまだ実装されていないため、オーディオの再生および録音はまだ利用できません。
VxWorks
- VxWorks 26.03 のサポートが追加されました。
WebAssembly
- QAudioSource およびQAudioSink では、OpenAL の代わりに Web Audio API AudioWorklets バックエンドを使用するようになり、ブラウザネイティブの低遅延オーディオキャプチャが可能になりました。
- また、
texImage2Dを使用して WebGL にビデオフレームをアップロードし、ゼロコピーレンダリングが可能になりました。 Qt Quick。 - QCameraFormat のサポートを追加しました。
APIの変更点一覧
これらのページには、Qt 6.12 における API の変更点の概要が記載されています:
既知の問題
Qt 6.12 の既知の問題については、Qt Wiki を参照してください。
© 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.