下面是一些简单的QML代码,包含一个Button和一个MouseArea。我希望Button能够同时检测到鼠标左键和右键的点击。
Rectangle {
anchors.fill:parent;
width: 1302
height: 638
Button {
id: button1
x: 378
y: 332
width: 194
height: 66
text: qsTr("Button")
}
MouseArea {
id: mouseArea1
x: 368
y: 306
width: 226
height: 108
acceptedButtons: Qt.RightButton
propagateComposedEvents: true
onClicked: {
console.log("Click")
mouse.accepted = false
}
}
}由于MouseArea位于Button之上,我如何迫使Button接受鼠标事件?
发布于 2015-02-24 03:31:44
试试看,如果我理解你的话:
import QtQuick 2.4
import QtQuick.Window 2.2
import QtQuick.Controls 1.2
Window {
id: screen
width: 800
height: 600
visible: true
Button {
anchors.centerIn: parent
text: qsTr("Button")
onClicked: {
console.log("Button was clicked");
}
z: 100
MouseArea {
anchors.fill: parent
acceptedButtons: Qt.RightButton
onClicked: {
console.log("Button right button was clicked");
mouse.accepted = true
}
}
}
MouseArea {
anchors.fill: parent
acceptedButtons: Qt.RightButton
propagateComposedEvents: true
onClicked: {
console.log("Window right button was clicked")
}
z: 99
}
}但我建议你用普通的方式显示按钮弹出。使用Button.menu显示下拉菜单按钮.
https://stackoverflow.com/questions/28681447
复制相似问题