C++の拡張ポイントQt Quick
すべてのQMLアプリケーションは、C++コードに実装された追加機能を利用したり、 C++ベースのQMLプラグインを提供するために、C++から拡張することができます。このC++によるQMLの拡張については、Writing QML Extensions with C++のドキュメントで説明されています。
さらに、Qt Quick モジュールでは、C++ 開発者向けに、このモジュールに特化したいくつかの拡張および統合ポイントを提供しています。特に、C++開発者がQt Quick でレンダリング可能なカスタムの型(QQuickItem-derived types)を作成・登録できるようになっています。また、開発者が独自のレンダリングプリミティブを定義できるように、シーングラフ関連のクラスもいくつか提供されている。
ユーザー定義 QQuickItem 派生型
Qt Quick モジュールには、QML アプリケーションで使用するための豊富なビジュアルアイテム型 ライブラリが用意されていますが、開発者の中には、独自のアイテム派生型を C++ で定義し、QML の型システムに公開したいと考える人もいるでしょう。最も簡単な方法はQQuickItem をサブクラス化することです。 はQt Quick モジュールに含まれるすべてのビジュアル型の基本型です。詳しくはQQuickItem のドキュメントを参照してください。
シーングラフ関連クラス
Qt Quick 2は、OpenGL ES、OpenGL、Vulkan、Metal、Direct 3DなどのグラフィックスAPIに基づく専用のシーングラフをレンダリングに使用します。従来の命令型ペイントシステム( など)ではなく、グラフィックスにシーングラフを使用することは、レンダリングするシーンをフレーム間で保持し、レンダリングするプリミティブの完全なセットをレンダリング開始前に知ることができることを意味します。これにより、OpenGLの描画呼び出しをバッチ化して状態の変化を最小限にしたり、不明瞭なプリミティブを破棄したりするなど、さまざまな最適化が可能になります。またQPainter Qt Quick C++ APIは、C++でカスタムノードを作成できるように、さまざまなクラスを提供します。詳しくは、Qt Quick Scene Graphドキュメントを参照してください。
ピクセルマップとスレッド画像のサポート
QMLエンジンでは、QMLアプリケーションはファイルシステムやネットワークリソースから画像を読み込むことができますが、アプリケーションによっては、C++ベースのプロセスから画像を読み込むという追加オプションが必要になる場合があります。このような場合、QQuickImageProvider クラスを使って実装することができます。このクラスは、QML アプリケーションに対して pixmap の読み込みとスレッド画像リクエストのサポートを提供します。特殊な "image: "URLスキームを使って画像を要求したQMLアプリケーションは、 画像を読み込むために適切な画像プロバイダに誘導されます。
詳しくはQQuickImageProvider のドキュメントを参照してください。
© 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.