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には、ユーザー定義の演算子==を与えなければなりません。
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> &)
コピー-このProperty インスタンスにother を割り当てる。この関数は削除されます。
特定の Qt ライセンスの下で利用可能です。
詳細はこちら。