1. Button设置了icon和大小却不能显示
Button {
width: 20
height: 20
padding: 0 // 如果不加padding=0,有可能因为图片小于
icon {
source: "assets/confirm_btn.png"
width: 20
height: 20
}
}
2. Rectangle无法监听onFocusChanged()
默认Rectangle是没有焦点的,想要监听onFocusChanged()必须先设置focus : true
3. 当一个布局覆盖另外一个布局时候,希望事件不要穿透到被覆盖的布局,但自身的鼠标事件保留
或许你会考虑如下两种方式,但是很难控制保留自身鼠标事件:
方法1:
MouseArea{
anchors.fill: parent
propagateComposedEvents: false
}
方法2:
MouseArea{
anchors.fill: parent
onPressed: {
console.log("item pressed")
mouse.accepted=false
}
}
更好的办法是,让自己覆盖层布局继承Control
或者Page
(Page
本质也是Control
), 因为Control
本身是事件不穿透到下面布局的。
4. 给Button控件设置背景色
Button属于Control的子View,所有集成Control的View都提供了background属性,如果想设置背景色只能重写backgroud:
Page {
id: root
width: 1920
height: 1080
background: Rectangle {
anchors.fill: parent
color: Theme.transparent
}
}
网友评论