개발자 준비중인 블로그

qml ListView delegate 내부의 MouseArea 문제 본문

/qml

qml ListView delegate 내부의 MouseArea 문제

무무니 2019. 10. 4. 12:24

qml 에서 ListView의 Delegate를 사용할 때
Delegate에 TextField나 button 등의 MouseArea에 접근이 불가능한 경우가 있다
보통 MouseArea가 겹쳐서 일어나게 되는 현상이다

이런 경우 보통 하나의 MouseArea의 enabled 를 false로 두는 방식이 있지만
두개의 MouseArea를 작동시키게 하고 싶다면 propagateComposedEvents: 옵션을 사용하는 방법이 있다.


<code>

 

MouseArea {

..
propagateComposedEvents
: true
...

onClicked {

...
mouse.accepted = false
}

...

}

가장 상위에 있는 MouseArea에 해당 옵션과 함께
onClicked에 mouse.accepted = false 를 넣어 주면 하위에 있는
MouseArea 또한 작동하게 된다

 
참고 )
https://doc.qt.io/qt-5/qml-qtquick-mousearea.html#propagateComposedEvents-prop

 

MouseArea QML Type | Qt Quick 5.13.1

MouseArea QML Type Enables simple mouse handling. More... Import Statement: import QtQuick 2.13 Inherits: Item Properties Signals Detailed Description A MouseArea is an invisible item that is typically used in conjunction with a visible item in order to pr

doc.qt.io

 

Comments