MultiPointTouchArea QML Type
다중 터치 지점을 처리할 수 있습니다. 더 보기...
| Import Statement: | import QtQuick |
| Inherits: |
속성
- maximumTouchPoints : int
- minimumTouchPoints : int
- mouseEnabled : bool
- touchPoints : list<TouchPoint>
신호
- canceled(list<TouchPoint> touchPoints)
- gestureStarted(GestureEvent gesture)
- pressed(list<TouchPoint> touchPoints)
- released(list<TouchPoint> touchPoints)
- touchUpdated(list<TouchPoint> touchPoints)
- updated(list<TouchPoint> touchPoints)
상세 설명
MultiPointTouchArea는 여러 터치 지점을 추적하는 데 사용되는 보이지 않는 항목입니다.
Item::enabled 속성은 터치 처리를 활성화하거나 비활성화하는 데 사용됩니다. 비활성화되면 터치 영역은 마우스 및 터치 이벤트에 대해 투명해집니다.
기본적으로 마우스는 단일 터치 지점과 동일한 방식으로 처리되며, 터치 영역이 마우스 이벤트를 처리하기 때문에 터치 영역 아래에 있는 항목은 마우스 이벤트를 수신하지 않습니다. 하지만 mouseEnabled 속성이 false로 설정되면 마우스 이벤트에 대해 투명해져, 다른 마우스 감지 항목(예: MouseArea)을 사용하여 마우스 상호 작용을 별도로 처리할 수 있습니다.
MultiPointTouchArea는 두 가지 방식으로 사용할 수 있습니다:
touchPoints를 설정하여 터치 지점 객체에 속성을 제공함으로써- onTouchUpdated 또는 onPressed, onUpdated, onReleased 핸들러를 사용하여
MultiPointTouchArea는 특정 터치 포인트에 대한 독점적인 소유권을 가질 수 있지만, 서로 다른 터치 포인트 집합을 처리하는 여러 MultiPointTouchArea를 동시에 활성화할 수도 있습니다.
TouchPoint도 참조하십시오 .
속성 문서
이 속성들은 터치 영역이 처리할 터치 지점의 범위를 지정합니다.
이러한 속성을 통해, 예를 들어 한 MultiPointTouchArea는 두 손가락 터치를 처리하고 다른 MultiPointTouchArea는 세 손가락 터치를 처리하는 식으로 중첩된 MultiPointTouchArea를 구성할 수 있습니다.
기본적으로 터치 영역 내의 모든 터치 포인트가 처리됩니다.
mouseEnabled 가 true인 경우, 마우스는 터치 포인트로 작동하므로 이러한 제약 사항의 적용을 받습니다. 예를 들어, maximumTouchPoints 가 2인 경우, 마우스를 하나의 터치 포인트로, 손가락을 또 다른 터치 포인트로 사용하여 총 2개의 터치 포인트를 사용할 수 있습니다.
mouseEnabled : bool
이 속성은 터치 영역( MultiPointTouchArea )이 마우스 이벤트도 처리할지 여부를 제어합니다. true(기본값)인 경우, 터치 영역은 마우스를 단일 터치 지점과 동일하게 취급합니다. false인 경우, 터치 영역은 마우스 이벤트를 무시하고 이벤트가 “통과”하도록 하여 그 아래에 있는 다른 항목에서 해당 이벤트를 처리할 수 있게 합니다.
touchPoints : list<TouchPoint> [read-only]
이 속성은 바인딩할 수 있는 사용자 정의 터치 포인트 객체 집합을 포함합니다.
mouseEnabled 가 true(기본값)이고 마우스가 터치 영역 위에 있는 상태에서 마우스 왼쪽 버튼을 누르면, 현재 마우스 위치가 이러한 터치 포인트 중 하나가 됩니다.
다음 예제에서는 터치 포인트를 따르는 두 개의 작은 사각형이 있습니다.
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도 참조하십시오 .
Signal 문서
canceled(list<TouchPoint> touchPoints)
이 신호는 다른 항목이 터치 이벤트 처리를 가로채면서 새로운 터치 이벤트가 취소되었을 때 발생합니다.
이 신호는 고급 용도로 사용되며, 입력을 처리하는 ` MultiPointTouchArea `가 두 개 이상인 경우나 ` Flickable` 내부에 ` MultiPointTouchArea `가 있는 경우에 유용합니다. 후자의 경우, ` onPressed ` 신호 핸들러에서 특정 로직을 실행한 후 드래그를 시작하면, ` Flickable `가 ` MultiPointTouchArea`로부터 터치 처리를 가로챌 수 있습니다. 이러한 경우, ` MultiPointTouchArea `가 ` Flickable`에 터치 처리를 넘겨준 후 로직을 재설정하려면, ` released` 외에도 ` canceled `를 처리해야 합니다.
touchPoints 취소된 포인트 목록입니다.
참고: 신호 핸들러 코드에서 touchPoints 인자를 사용하는경우 , touchPoints 속성과 혼동되지 않도록 형식 매개변수에서 이름을 변경하는 것이 좋습니다( QML 코딩 규칙 참조):
onCanceled: (points) => console.log("canceled", points.length)참고: 이에 대응하는핸들러는 onCanceled 입니다.
gestureStarted(GestureEvent gesture)
이 신호는 전역 드래그 임계값에 도달했을 때 발생합니다.
이 신호는 일반적으로 Flickable이나 다른 MultiPointTouchArea 내에 MultiPointTouchArea 가 중첩된 경우에 사용됩니다. 임계값에 도달하여 신호가 처리되면, 터치 영역이 현재 터치 포인트를 포착해야 하는지 여부를 결정할 수 있습니다. 기본적으로 터치 영역은 제스처를 캡처하지 않지만, 캡처하려면 ` gesture.grab()`를 호출하면 됩니다. 제스처가 캡처되지 않은 경우, 예를 들어 중첩된 `Flickable`도 제스처를 캡처할 기회를 갖게 됩니다.
gesture 객체에는 현재 설정된 touchPoints 세트와 dragThreshold 에 대한 정보도 포함되어 있습니다.
참고: 해당핸들러는 ` 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 입니다.
© 2026 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.