C
Qul::Property Struct
template <typename T> struct Qul::PropertyProperty クラスは、指定された型のプロパティを保持するために使用できます。詳細...
| Header: | #include <qul/property.h> |
| Since: | Qt Quick Ultralite 1.0 |
パブリック関数
| Property() | |
| Property(const T &value) | |
| Property(const Qul::Property<T> &) | |
| void | setValue(const T &v) |
| const T & | value() |
| const T & | value() const |
| Qul::Property<T> & | operator=(const Qul::Property<T> &) |
詳細な説明
このクラスを、C++で定義するオブジェクトのパブリックメンバーとして使用します。これにより、QMLにおいてそのオブジェクトのプロパティとして公開されます。クラスのテンプレートパラメータはC++の型を定義し、対応するQMLの型にマッピングされます。組み込みの比較演算子を持たないプロパティ型 T については、ユーザー定義の operator== を指定する必要があります。
struct MyData : public Qul::Object
{
Qul::Property<int> val;
void update(int x)
{
// can get and set property values from C++
val.setValue(x);
}
};C++で定義されたプロパティは、QMLバインディングで使用できます。
Item {
Item {
// can bind QML property to exported property
x: mydata_x.val
color: "red"
width: 50
height: 50
}
MyData {
id: mydata_x
val: 100
}
MyData {
id: mydata_width
// can bind exported property
val: parent.width
}
Component.onCompleted: {
mydata_x.update(200);
console.log(mydata_width.val);
}
}ご覧のとおり、QMLバインディングをC++で定義されたプロパティに割り当てることができます。バインディングで使用されるプロパティの値が変更されると、そのプロパティの値も自動的に更新されます。また、QMLでバインディングを定義する際のソースとしても使用できます。
プロパティのグループ化
プロパティは次のようにグループ化できます:
struct MyObject : public Qul::Object
{
struct Grouped
{
Qul::Property<int> val1;
Qul::Property<int> val2;
Qul::ListProperty<int> list1;
};
Grouped group;
};そうすることで、QMLでは次のように使用できます:
Item {
MyObject {
group.val1: 42
group.val2: 43
}
}グループ化は、プロパティを構造体またはクラス S の中に配置し、エクスポートされるクラス内に型 S のフィールドを設けることで行われます。型 S 自体は `Qul::Object` から派生してはなりません。グループ内のプロパティとして公開されるのは、型 `Qul::Property ` のパブリックフィールドのみです。
「プロパティ」および「グループ化されたプロパティ」も参照してください 。
メンバ関数のドキュメント
Property::Property()
ゼロで初期化された値を保持するプロパティを作成します。
[explicit] Property::Property(const T &value)
value で初期化されたプロパティを作成します。
[delete] Property::Property(const Qul::Property<T> &)
Property のインスタンスをコピーして生成します。この関数は削除されています。
void Property::setValue(const T &v)
このバインディングの値を `v` に設定します。
value()も参照してください 。
const T &Property::value()
このプロパティの値を取得します。
setValue()も参照してください 。
const T &Property::value() const
これはオーバーロードされた関数です。
[delete] Qul::Property<T> &Property::operator=(const Qul::Property<T> &)
other をこのProperty インスタンスにコピー代入します。この関数は削除されました。
特定の Qt ライセンスの下で利用可能です。
詳細はこちら。