QMLの型システム
QML文書中のオブジェクト階層の定義に使われる型は、様々なソースから得ることができます。それは以下のようなものです:
- QML言語がネイティブに提供するもの
- QMLモジュールによってC++経由で登録されたもの
- QMLモジュールによってQML文書として提供されるもの
さらに、アプリケーション開発者は、C++の型を直接登録したり、QML文書の中で再利用可能なコンポーネントを定義し、それをインポートすることによって、独自の型を提供することができます。
型の定義元がどこであれ、エンジンはそれらの型のプロパティやインスタンスに対して型安全性を強制します。
QMLの値型
QML言語では、整数、倍精度浮動小数点数、文字列、ブール値などの様々なプリミティブ型が組み込みでサポートされています。オブジェクトはこれらの型のプロパティを持つことができ、 またこれらの型の値はオブジェクトのメソッドの引数として渡すことができます。
値型の詳細についてはQML 値型を参照してください。
QML オブジェクト型
QML オブジェクト型とは、QML オブジェクトをインスタンス化するための型です。QML オブジェクト型はQtObject から派生したもので、QML モジュールによって提供されます。アプリケーションはこれらのモジュールをインポートすることで、それらが提供する オブジェクト型を利用することができます。QtQuick
モジュールはQMLでユーザーインターフェースを作成するために必要な最も一般的なオブジェクト型を提供しています。
最後に、全てのQML文書は暗黙のうちにQMLオブジェクト型を定義しており、 他のQML文書で再利用することができます。オブジェクト型の詳細については、QML型システムのオブジェクト型に関する文書を参照してください。
QMLシーケンス型
シーケンス型は、一連の値やオブジェクトを格納するために使用することができます。
シーケンス型の詳細については、QMLの型システムのシーケンス型に関するドキュメントを参照してください。
QML 名前空間
QML 名前空間を使用すると、C++ の名前空間から列挙型を公開することができます。
名前空間についての詳細な情報は、QML型システムの名前空間についてのドキュメントを参照ください。
JavaScript の型
JavaScript のオブジェクトや配列は QML エンジンでサポートされています。どのような標準的な JavaScript 型でも、汎用的なvar 型を用いて作成・保存することができます。
例えば、以下のようにDate
やArray
といった標準的な型が利用可能です:
import QtQuick Item { property var theArray: [] property var theDate: new Date() Component.onCompleted: { for (var i = 0; i < 10; i++) theArray.push("Item " + i) console.log("There are", theArray.length, "items in the array") console.log("The time is", theDate.toUTCString()) } }
詳しくはQMLドキュメントのJavaScript式を参照してください。
© 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.