我有以下自定义Label
:
import QtQuick 2.3
import QtQuick.Controls 1.4
Label
{
anchors.centerIn: parent
text: "DashboardLabel!"
font.pixelSize: 22
font.italic: true
color: "steelblue"
Rectangle
{
id: rectangle
}
}
我正试图通过访问rectangle
中的x和y变量来更改标签的位置:
import QtQuick 2.3
import QtQuick.Controls 1.4
import CustomGraphics 1.0
Item
{
anchors.centerIn: parent
CustomLabel
{
id: customLabel
width: 100
height: 100
rectangle.x: 200
}
}
由于我的自定义Label
未移动,因此似乎无法正常工作。我应该使用property
功能吗?这是我得到的错误:
Cannot assign to non-existent property "rectangle"
编辑:我刚刚尝试添加property alias rect: rectangle
,以便x
访问rect.x
。我没有收到任何错误,但窗口上没有任何错误。
答案 0 :(得分:1)
您无法像这样访问子元素的私有属性。您必须创建alias
以便子类访问它们。试试这个
import QtQuick 2.3
import QtQuick.Controls 1.4
Label
{
property alias childRect: rectangle
anchors.centerIn: parent
text: "DashboardLabel!"
font.pixelSize: 22
font.italic: true
color: "steelblue"
Rectangle
{
id: rectangle
width: 100
height: 100
}
}
然后
import QtQuick 2.3
import QtQuick.Controls 1.4
import CustomGraphics 1.0
Item
{
anchors.centerIn: parent
CustomLabel
{
id: customLabel
width: 100
height: 100
childRec.x: 200
}
}
UPDATE ,因为OP改变了描述
您尚未为矩形设置width
和height
属性。看我的编辑。