MultiPointTouchArea QML Type

여러 접점을 처리할 수 있습니다. 더 보기...

Import Statement: import QtQuick
Inherits:

Item

속성

신호

상세 설명

멀티포인트터치영역은 여러 터치 포인트를 추적하는 데 사용되는 보이지 않는 항목입니다.

Item::enabled 속성은 터치 처리를 활성화 및 비활성화하는 데 사용됩니다. 비활성화하면 터치 영역이 마우스 및 터치 이벤트에 투명해집니다.

기본적으로 마우스는 단일 터치 포인트와 동일한 방식으로 처리되며 터치 영역 아래의 항목은 터치 영역에서 마우스 이벤트를 처리하기 때문에 마우스 이벤트를 수신하지 않습니다. 그러나 mouseEnabled 속성을 false로 설정하면 마우스 이벤트에 투명하게 표시되어 마우스에 민감한 다른 항목(예: MouseArea)을 사용하여 마우스 상호 작용을 별도로 처리할 수 있습니다.

멀티포인트터치영역은 두 가지 방식으로 사용할 수 있습니다:

  • touchPoints 을 설정하여 터치 포인트 객체에 바인딩할 수 있는 프로퍼티를 제공하거나
  • 에 바인딩할 수 있는 프로퍼티를 제공하는 방법과 onTouchUpdated 또는 onPressed, onUpdated 및 onReleased 핸들러를 사용하는 방법입니다.

멀티포인트터치영역은 특정 터치포인트에 대한 독점적인 소유권을 가질 있지만, 동시에 여러 멀티포인트터치영역을 활성화하여 각각 다른 터치포인트 세트에서 작동하도록 할 수도 있습니다.

TouchPoint참조하세요 .

속성 문서

maximumTouchPoints : int

minimumTouchPoints : int

이러한 속성은 터치 영역에서 처리할 터치 포인트의 범위를 유지합니다.

예를 들어 멀티포인트 터치 영역을 중첩하여 하나는 두 손가락 터치를 처리하고 다른 하나는 세 손가락 터치를 처리할 수 있는 편리한 기능입니다.

기본적으로 터치 영역 내의 모든 터치 포인트가 처리됩니다.

mouseEnabled 이 참이면 마우스가 터치 포인트로 작동하므로 이러한 제약 조건이 적용됩니다. 예를 들어 maximumTouchPoints 이 두 개이면 마우스를 하나의 터치 포인트로, 손가락을 다른 터치 포인트로 사용하여 총 두 개의 터치 포인트를 사용할 수 있습니다.


mouseEnabled : bool

이 속성은 MultiPointTouchArea 에서 마우스 이벤트도 처리할지 여부를 제어합니다. 참(기본값)이면 터치 영역은 마우스를 하나의 터치 포인트와 동일하게 처리하고, 거짓이면 터치 영역은 마우스 이벤트를 무시하고 그 아래의 다른 항목에서 처리할 수 있도록 '통과'를 허용합니다.


touchPoints : list<TouchPoint> [read-only]

이 속성은 바인딩할 수 있는 사용자 정의 터치 포인트 개체 집합을 보유합니다.

mouseEnabled (기본값)이 참이고 마우스가 터치 영역 위에 있는 동안 마우스 왼쪽 버튼을 누르면 현재 마우스 위치가 이러한 터치 포인트 중 하나가 됩니다.

다음 예시에서는 터치 포인트를 따르는 두 개의 작은 직사각형이 있습니다.

import QtQuick

Rectangle {
    width: 400; height: 400
    MultiPointTouchArea {
        anchors.fill: parent
        touchPoints: [
            TouchPoint { id: point1 },
            TouchPoint { id: point2 }
        ]
    }

    Rectangle {
        width: 30; height: 30
        color: "green"
        x: point1.x
        y: point1.y
    }

    Rectangle {
        width: 30; height: 30
        color: "yellow"
        x: point2.x
        y: point2.y
    }
}

기본적으로 이 속성은 빈 목록을 보유합니다.

TouchPoint참조하세요 .


신호 문서

canceled(list<TouchPoint> touchPoints)

이 신호는 다른 항목이 터치 이벤트 처리를 훔쳐서 새 터치 이벤트가 취소되었을 때 발생합니다.

이 신호는 입력을 처리하는 MultiPointTouchArea 이 두 개 이상 있거나 Flickable 안에 MultiPointTouchArea 이 있을 때 유용합니다. 후자의 경우 onPressed 신호 처리기에서 일부 로직을 실행한 다음 드래그를 시작하면 FlickableMultiPointTouchArea 에서 터치 처리를 훔칠 수 있습니다. 이러한 경우 MultiPointTouchAreaFlickable 로 터치 처리를 잃었을 때 로직을 재설정하려면 released 와 함께 canceled 을 처리해야 합니다.

touchPoints 는 취소된 포인트 목록입니다.

참고: 신호 처리기 코드에서 touchPoints 인수를 사용하는 경우 touchPoints 속성과의 혼동을 피하기 위해 공식 매개변수에서 이름을 바꾸는 것이 가장 좋습니다( QML 코딩 규칙 참조):

onCanceled: (points) => console.log("canceled", points.length)

참고: 해당 핸들러는 onCanceled 입니다.


gestureStarted(GestureEvent gesture)

이 신호는 글로벌 드래그 임계값에 도달했을 때 발생합니다.

이 신호는 일반적으로 MultiPointTouchArea 가 플릭 가능 또는 다른 MultiPointTouchArea 에 중첩된 경우에 사용됩니다. 임계값에 도달하여 신호가 처리되면 터치 영역이 현재 터치 포인트를 잡을지 여부를 결정할 수 있습니다. 기본적으로 잡히지 않으며, 잡으려면 gesture.grab() 을 호출합니다. 제스처가 잡히지 않으면 예를 들어 중첩된 플릭 가능도 잡을 기회를 갖게 됩니다.

gesture 객체에는 touchPointsdragThreshold 의 현재 집합에 대한 정보도 포함됩니다.

참고: 해당 핸들러는 onGestureStarted 입니다.


pressed(list<TouchPoint> touchPoints)

이 신호는 새 터치 포인트가 추가될 때 발생하며 touchPoints 은 이러한 새 포인트의 목록입니다.

minimumTouchPoints 을 1보다 큰 값으로 설정하면 필요한 최소 터치 포인트 수에 도달할 때까지 이 신호가 전송되지 않습니다.

참고: 신호 처리기 코드에서 touchPoints 인수를 사용하는 경우 touchPoints 속성과의 혼동을 피하기 위해 공식 매개변수에서 이름을 바꾸는 것이 가장 좋습니다( QML 코딩 규칙 참조):

onPressed: (points) => console.log("pressed", points.length)

참고: 해당 핸들러는 onPressed 입니다.


released(list<TouchPoint> touchPoints)

이 신호는 기존 터치 포인트가 제거될 때 발생합니다. touchPoints 은 이러한 제거된 포인트의 목록입니다.

참고: 신호 처리기 코드에서 touchPoints 인수를 사용하는 경우 touchPoints 속성과의 혼동을 피하기 위해 공식 매개변수에서 이름을 바꾸는 것이 가장 좋습니다( QML 코딩 규칙 참조):

onReleased: (points) => console.log("released", points.length)

참고: 해당 핸들러는 onReleased 입니다.


touchUpdated(list<TouchPoint> touchPoints)

이 신호는 MultiPointTouchArea 에서 처리하는 터치 포인트가 변경될 때 발생합니다. 여기에는 새 터치 포인트 추가, 이전 터치 포인트 제거 또는 취소, 현재 터치 포인트 데이터 업데이트 등이 포함됩니다. touchPoints 은 현재 모든 터치 포인트의 목록입니다.

참고: 해당 핸들러는 onTouchUpdated 입니다.


updated(list<TouchPoint> touchPoints)

이 신호는 기존 터치 포인트가 업데이트될 때 전송됩니다. touchPoints 은 업데이트된 터치 포인트의 목록입니다.

참고: 신호 처리기 코드에서 touchPoints 인수를 사용하는 경우 touchPoints 속성과의 혼동을 피하기 위해 공식 파라미터에서 이름을 바꾸는 것이 가장 좋습니다( QML 코딩 규칙 참조):

onUpdated: (points) => console.log("updated", points.length)

참고: 해당 핸들러는 onUpdated 입니다.


© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.