このページでは

C++ 拡張ポイントの提供元Qt Quick

すべての QML アプリケーションは、C++ コードで実装された追加機能を利用したり、C++ ベースの QML プラグインを提供したりするために、C++ から拡張することができます。C++ による QML の拡張については、「C++ を使用した QML 拡張機能の作成」のドキュメントで解説されています。

さらに、Qt Quick モジュールは、C++開発者向けに、このモジュール固有の拡張および統合ポイントをいくつか提供しています。特に、C++開発者は、Qt Quick によってレンダリング可能な、QQuickItem を継承したカスタム型を作成・登録することができます。また、開発者が独自のレンダリングプリミティブを定義できるようにする、シーングラフ関連のクラスもいくつか提供されています。

ユーザー定義の`QQuickItem`派生型

Qt Quick モジュールは、QMLアプリケーションで使用するための豊富なビジュアルアイテム型のライブラリをすでに提供していますが、一部の開発者は、C++で独自のアイテム派生型を定義し、それらをQMLの型システムに公開したいと考えるかもしれません。 これを行う最も簡単な方法は、Qt Quick モジュール内のすべてのビジュアルタイプの基底型であるQQuickItem をサブクラス化することです。詳細については、QQuickItem のドキュメントを参照してください。

Qt Quick 2では、OpenGL ES、OpenGL、Vulkan、Metal、Direct 3DなどのグラフィックスAPIに基づいた専用のシーングラフを使用してレンダリングを行います。 従来の命令型ペイントシステム(QPainter など)ではなく、グラフィックスにシーングラフを使用することで、レンダリング対象のシーンをフレーム間で保持でき、レンダリング開始前にレンダリング対象となるプリミティブの完全なセットが判明します。 これにより、状態変更を最小限に抑えるための OpenGL 描画呼び出しのバッチ処理や、隠れて見えなくなったプリミティブの破棄など、さまざまな最適化が可能になります。 Qt Quick C++ API は、C++でカスタムノードを作成できるようにするための様々なクラスを提供しています。詳細については、Qt Quick シーングラフのドキュメントを参照してください。

ピクマップおよびスレッド化された画像のサポート

QML エンジンは、QML アプリケーションがファイルシステムやネットワークリソースから画像を読み込むことを可能にしていますが、一部のアプリケーションでは、C++ ベースのプロセスから画像を読み込むという追加のオプションが必要になる場合があります。これは、QQuickImageProvider クラスを介して実装できます。このクラスは、QML アプリケーション向けのピクマップの読み込みおよびスレッド化された画像リクエストのサポートを提供します。 特別な「image:」URLスキーマを通じて画像を要求するQMLアプリケーションは、画像を読み込むために適切な画像プロバイダにリダイレクトされます。

詳細については、QQuickImageProvider のドキュメントを参照してください。

© 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.