C

鼠标区域 QML 类型

启用简单的触摸处理。 更多...

导入声明import QtQuick
Qt Quick Ultralite 1.0
继承

Item

属性

信号

详细说明

鼠标区域是一个不可见的项,通常与可见的项一起使用,以提供对此项的触摸处理。通过有效地充当代理,触摸处理的逻辑可以包含在鼠标区域项中。

使用 enabled 属性来启用和禁用代理项的触摸处理。当禁用时,区域对触摸事件变得透明。

鼠标区域是一个不可见的项,但它具有一个可见属性。当设置为 false 时,区域对触摸事件变得透明。

pressed 只读属性指示用户是否正在按下鼠标区域。此属性通常用于用户界面中属性的绑定之间。

通过定义事件处理属性提供有关触摸位置和按下状态的详细信息。最常用的包括处理触摸按下:onClicked、onPressed、onReleased 和 onPressAndHold。

如果鼠标区域与另一个鼠标区域项的区域重叠,则只有顶部区域将接收到事件。

示例用法

以下示例使用了一个矩形中的MouseArea,当点击时,它会将矩形颜色改变为红色

import QtQuick 2.15

Rectangle {
    width: 100; height: 100
    color: "green"

    MouseArea {
        anchors.fill: parent
        onClicked: { parent.color = 'red' }
    }
}

许多MouseArea信号会传递一个包含关于触摸事件额外信息(如位置)的 mouse 参数。

这里是一个扩展的示例,当触摸时间足够长时,它会产生不同的颜色

Rectangle {
    width: 100; height: 100
    color: "green"

    MouseArea {
        anchors.fill: parent
        onClicked: {
            if (mouse.wasHeld)
                parent.color = 'blue';
            else
                parent.color = 'red';
        }
    }
}

另请参阅:MouseEvent.

属性文档

mouseX : 实数

mouseY : 实数

这些属性持有触摸的坐标。

在这些属性有效期间,只需触摸持续存在,即使移动到区域外也会保持有效。

坐标相对于 MouseArea


pressAndHoldInterval : 整数

此属性覆盖在 pressAndHold 发射之前的毫秒数。

默认值是800毫秒。

另请参阅:pressAndHold.


(自Qt Quick Ultralite 1.1起)pressed : 布尔

此属性表示是否发生了任何触摸。

此属性自Qt Quick Ultralite 1.1引入。


信号文档

(自Qt Quick Ultralite 1.1起)canceled()

当触摸事件被取消时发出此信号,因为另一个项接管了触摸事件处理。

此信号用于高级用途:当有多个 MouseArea 在处理输入,或者在 Flickable 中有一个 MouseArea 时很有用。在后一种情况下,如果您在 onPressed 信号处理器中执行了一些逻辑,然后开始拖动,Flickable 将从 MouseArea 接管触摸处理。在这些情况下,要当 MouseArea 失去触摸处理权给 Flickable 时重置逻辑,除了 released 之外,还应处理 canceled

注意:对应的处理程序是 onCanceled

此信号自Qt Quick Ultralite 1.1引入。


clicked(MouseEvent mouse)

当发生点击时发出此信号。点击被定义为在 MouseArea 内部的一次按下和释放,无论是按,还是移动到区域外,然后返回并释放,都算作点击。

mouse 参数提供了有关点击的信息,包括释放点击时的x和y位置,以及点击是否被保持。

在处理此信号时,改变 mouse 参数的 accepted 属性没有效果。

注意:对应的处理程序是 onClicked


positionChanged(MouseEvent mouse)

当触摸位置改变时发出此信号。

mouse 参数提供了有关触摸的信息,包括x和y位置。

只有当存在按住(press)时,才会发出此信号。

在处理此信号时,改变 mouse 参数的 accepted 属性没有效果。

注意:对应的处理程序是onPositionChanged


[自 Qt Quick Ultralite 1.1 开始] pressAndHold(MouseEvent 鼠标)

当发生长按(目前为800ms)时,会发出此信号。参数鼠标提供有关按下的信息,包括按下的x和y位置。

在处理此信号时,改变 mouse 参数的 accepted 属性没有效果。

注意:对应的处理程序是onPressAndHold

此信号自Qt Quick Ultralite 1.1引入。


[自 Qt Quick Ultralite 1.1 开始] pressed(MouseEvent 鼠标)

当有按下动作时,会发出此信号。参数鼠标提供有关按下的信息,包括x和y位置。

处理此信号时,请使用参数鼠标accepted属性来控制是否此MouseArea处理按下并处理直到释放的所有后续触摸事件。默认情况下,接受此事件并不允许位于此MouseArea下方的其他MouseArea处理该事件。如果accepted设置为false,则不会向此MouseArea发送更多事件,直到下一个按钮按下。

注意:对应的处理程序是onPressed

此信号自Qt Quick Ultralite 1.1引入。


[自 Qt Quick Ultralite 1.1 开始] released(MouseEvent 鼠标)

当有释放动作时,会发出此信号。参数鼠标提供有关点击的信息,包括点击释放的x和y位置以及是否持有点击。

在处理此信号时,改变 mouse 参数的 accepted 属性没有效果。

注意:对应的处理程序是onReleased

此信号自Qt Quick Ultralite 1.1引入。

另请参阅:canceled


在某些Qt许可下提供。
了解更多。