MouseArea
MouseArea
继承于Item
且本身不可见,它通常与可见组件结合使用,以便为指定的组件提供鼠标操作的功能。尽管MouseArea
拥有visible
属性,不过该属性与组件是否可见并没有关系。当visible
属性值为false
时,表示忽略该鼠标区域的鼠标事件,类似enabled
属性设置为false
。
下面是一个最简单的示例,点击绿色矩形后该矩形会变成红色。
Rectangle {
width: 100
height: 100
color: "green"
MouseArea {
anchors.fill: parent
onClicked: { parent.color = "red" }
}
}
MouseArea
提供了acceptedButtons
属性用于控制具体哪个或者哪些鼠标按钮可以触发事件,默认为Qt.LeftButton
。如果需要支持多个鼠标按钮,可以用或运算符|
进行组合。如Qt.LeftButton | Qt.RightButton
,甚至使用Qt.AllButtons
接收所有鼠标事件。
❝这里我们使用了
Qt
这一全局对象,使用它可以获取到Qt中很多有用的枚举类型和函数,如上面的LeftButton
。该全局对象与Qt核心模块中的Qt命名空间的各种标识符一一对应。