我有幾個QML項目都有鼠標區域。獲取MouseEvents而MousePressed
我想實現的是:
- 點擊的項目之一,並開始跟蹤鼠標
- 添加所有其他項目鼠標進入列表
- 結束一次鼠標跟蹤被釋放
示例代碼:
import QtQuick 2.3
import QtQuick.Window 2.2
Window {
visible: true
width:500; height: 200;
Rectangle{
anchors.left: parent.left
color: 'red'
width: 200; height: 200;
MouseArea {
anchors.fill: parent
hoverEnabled: true
onReleased: console.log('onReleased red')
onEntered: console.log('onEntered red')
onPressed: {
console.log('onPressed red')
mouse.accepted = false
}
}
}
Rectangle{
anchors.right: parent.right
color: 'blue'
width: 200; height: 200;
MouseArea {
anchors.fill: parent
hoverEnabled: true
onReleased: console.log('onReleased blue')
onEntered: console.log('onEntered blue')
onPressed: console.log('onPressed blue')
}
}
}
預期的行爲:
- 點擊一個矩形
- 獲取上輸入事件,如果我進入其他元素
- 獲取發佈事件
示例代碼有兩個版本我想,用並且不接受mousePressed
事件。
會發生什麼是: 如果我將鼠標按在一個矩形上,我沒有得到我所有其他矩形的onEnter
事件。 如果我不接受onPressed
事件,我會得到onEnter
事件,但不會收到onReleased
事件。
注:
我已經找到this Answer它採用了DropArea的解決方法是不是我想要的,如果有任何其他的解決方案中使用了什麼。
儘管示例可能看起來像拖動&放下它不是我想要的。 請參閱本課題頂部的「我想實現的目標」。
什麼樣的物品? – Mitch
您的物品是否放在其他物品上?在帖子中添加一些sourse代碼。嘗試[this](http://doc.qt.io/qt-5/qml-qtquick-mousearea.html#propagateComposedEvents-prop)鏈接,這可能會有所幫助。 – folibis
@folibis項目不重疊。我已經嘗試使用一個包含所有其他項目的MouseArea,但這也沒有效果。該文件只是關於我不使用的組合事件。我會稍後添加一些源代碼! – Mailerdaimon