C
属性结构体
template <typename T> struct Qul::Property该属性类可用于持有给定类型的属性。更多...
头文件 | #include <qul/property.h> |
自 | Qt Quick Ultralite 1.0 |
公共函数
详细信息
将此类用作在 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; }; Grouped group; };
然后它们可以像这样在 QML 中使用
Item { MyObject { group.val1: 42 group.val2: 43 } }
分组是通过将属性放在一个结构体或类 S 中,然后在导出的类中有一个类型为 S 的字段来完成的。类型 S 本身不能派生自 Qul::Object。只有它的类型为 Qul::Property 的公共字段才被公开为组内的属性。
成员函数文档
Property::Property(const T &value)
用 value 初始化属性。
Property::Property()
创建一个持有零初始化值的属性。
void Property::setValue(const T &v)
将此绑定值设置为 v。
另请参阅 值。
const T &Property::value()
获取此属性的值。
另请参阅 setValue。
const T &Property::value() const
这是一个重载函数。
在特定Qt许可下可用。
了解更多信息。