属性
import QtQuick
Item {
MouseArea {
anchors.fill: parent
//鼠标区域会做出反应的鼠标按钮
acceptedButtons: Qt::MouseButtons
acceptedButtons: Qt.NoButton
//无
acceptedButtons: Qt.AllButtons
//所有按钮
acceptedButtons: Qt.LeftButton//默认
acceptedButtons: Qt.RightButton
acceptedButtons: Qt.MiddleButton
//中键
acceptedButtons: Qt.BackButton
//后退(侧键)
acceptedButtons: Qt.LeftButton | Qt.RightButton
//多个按钮用 或| 标志
......
//drag group 拖动
drag.target: Item
//拖动目标 id
drag.axis: enumeration
drag.axis: Drag.XAxis
//只能水平拖动
drag.axis: Drag.YAxis
//只能垂直拖动
drag.axis: Drag.XAndYAxis
//水平垂直拖动(默认)
drag.minimumX(Y): real
//拖动的最小距离
drag.maximumX(Y): real
//拖动的最大距离
drag.filterChildren: bool
//覆盖后代的 MouseArea
//当前MouseArea可以用来拖动,后代MouseArea用来点击
drag.smoothed: bool
//true,只有在拖动操作开始后才会移动目标
//false,目标将直接移动到当前鼠标位置
//设置为false,可解决快速移动鼠标漂移
//默认 true
drag.threshold: real
//决定拖动操作何时开始的阈值(以像素为单位)
enabled: bool
//项目是否接受鼠标事件
//不等同于 Item.enabled
//只影响鼠标事件,其效果不会传播给子项目
//默认 true
hoverEnabled: bool
//是否处理悬停事件
//默认 false
pressAndHoldInterval: int
//重置pressAndHold 发出前的经过时间,ms
preventStealing: bool
//确定鼠标事件是否可以从MouseArea 中窃取
//默认 false
propagateComposedEvents: bool
//组成的鼠标事件是否会自动传播到与该MouseArea 重叠但在视觉堆叠顺序中较低的其他 MouseAreas
//默认 false
scrollGestureEnabled: bool
//控制MouseArea 是否响应非鼠标设备的滚动手势
//默认 true
}
}
只读属性
import QtQuick
Item {
MouseArea {
anchors.fill: parent
mouseX(Y) : real
//鼠标光标坐标
containsMouse: bool
//鼠标当前是否位于鼠标区域内
containsPress: bool
//等同于pressed && containsMouse
//当前是否有任何acceptedButtons 被按下
drag.active: bool
//指定目标项目是否正在被拖动
pressed: bool
//显示 acceptedButtons 当前是否被按下
pressedButtons: MouseButtons
//显示当前按下的鼠标按钮
//该属性仅处理acceptedButtons 中指定的按钮
//包含的按位组合
Qt.LeftButton
Qt.RightButton
Qt.MiddleButton
}
}
信号
import QtQuick
Item {
MouseArea {
anchors.fill: parent
canceled()
onCanceled:
//鼠标事件被取消,因为另一个项目抢走了鼠标事件处理权时,就会发出该信号
clicked(MouseEvent mouse)
onClicked:
//点击时发出,点击被定义为按下后释放
//mouse 参数提供了有关单击的信息
//除非propagateComposedEvents 属性为true,
//否则更改mouse 参数的accepted 属性不会有任何影响
doubleClicked(MouseEvent mouse)
onDoubleClicked:
//双击时发出,点击被定义为按下后释放
//mouse 参数提供了有关单击的信息
//如果mouse 参数的accepted 属性设置为 false,
//第二次点击时将发出按下/释放/点击信号
//否则,这些信号将被抑制
//accepted 属性默认 true
entered()
onEntered:
//信号在鼠标进入鼠标区域时发出
//默认只有当前按下按钮时才会发出该信号
//hoverEnabled 设置为 true,即使没有按下也会发出
exited()
onExited:
//鼠标退出鼠标区域时发出
//默认只有当前按下按钮时才会发出该信号
//hoverEnabled 设置为 true,即使没有按下也会发出
positionChanged(MouseEvent mouse)
onPositionChanged:
//鼠标位置发生变化时发出
//默认只有当前按下按钮时才会发出该信号
//hoverEnabled 设置为 true,即使没有按下也会发出
//处理此信号时,更改mouse 参数的accepted 属性不会产生任何影响
pressAndHold(MouseEvent mouse)
onPressAndHold:
//长按时(当前为 800ms)会发出该信号
//处理该信号时,除非propagateComposedEvents 属性为true,
//否则更改mouse 参数的accepted 属性不会有任何影响
pressed(MouseEvent mouse)
onPressed:
//按钮按下时发出
released(MouseEvent mouse)
onReleased:
//释放按钮时发出
wheel(WheelEvent wheel)
onWheel:
//该信号是对鼠标滚轮和触控板滚动手势的响应
}
}