一、描述
QtObject 类型是一个非可视元素,仅包含 objectName 属性。
如果需要一个非常轻量级的类型来包含一组自定义属性,那么创建一个 QtObject 会很合适:
import QtQuick 2.0
Item
{
QtObject
{
id: attributes
property string name
property int size
property variant attributes
}
Text { text: attributes.name }
}
它对于 C++ 集成也很有用,因为它继承自 QObject。
二、属性成员
1、objectName : string
此属性保存对象实例的 QObject::objectName。
这允许 C++ 应用程序使用 QObject::findChild() 方法在 QML 组件中定位项目。
例如,以下 C++ 应用程序定位子 Rectangle 项并动态更改其颜色值:
// MyRect.qml
import QtQuick 2.0
Item
{
width: 200; height: 200
Rectangle
{
anchors.fill: parent
color: "red"
objectName: "myRect"
}
}
// main.cpp
QQuickView view;
view.setSource(QUrl::fromLocalFile("MyRect.qml"));
view.show();
QQuickItem *item = view.rootObject()->findChild<QQuickItem*>("myRect");
if (item)
item->setProperty("color", QColor(Qt::yellow));
注:Item 继承自 QtObject 类型。