在此使用建立一个button来说明alias别名的使用,使用QML实现一个自定义按钮,如下:
Rectangle{
width: 300;height: 300
Rectangle {
id:button_type
// property alias text: textElement.text;
width: 60; height: 30
border.color: "steelblue";border.width:2
anchors.centerIn: parent
radius: 8
color: "mediumaquamarine"
Text {
id: textElement
anchors.centerIn: parent
font.pointSize: 10
style: Text.Raised;
text:"click me"
color: "black"
}
}
}效果:
这只是一个简单的样式,其中的按钮名字,需要在text中给出,但是如果我们需要很多按钮,就得这样重复的去写,这样很是麻烦。要是我们能做一个这样的按钮,并且后面可以直接调用这样的样式,就想一个函数一样,我们只管把按钮名字传入,就可以直接使用这个按钮,那就好多了,那么我们就可以使用QML中的alias别名。达到我们想要的。
下面就讲解怎么使用:
alias作用:允许我们转发一个属性或者转发一个属性对象到另一个作用域。对于上面Button.qml中的代码,
Rectangle和Text是两个属性,而按钮名字是属于Text的text,那么我们需要把text从Text中转发出来给Rectangle。那么接下来Button.qml就编程下面这样。
Rectangle {
id:button_type
property alias text: textElement.text;
width: 60; height: 30
border.color: "steelblue";border.width:2
anchors.centerIn: parent
radius: 8
color: "mediumaquamarine"
Text {
id: textElement
anchors.centerIn: parent
font.pointSize: 10
style: Text.Raised;
// text:"click me"
color: "black"
}
}
Rectangle{
width: 300;height: 300
Button{
text:"button"
}
}运行效果如下:
名字就是我们调用的地方给的了。如果要给按钮一些点击效果,同样方法。