QML MouseArea Overlap 其他小部件
QML MouseArea Overlap other widget
这是一些简单的 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
接受鼠标事件?
试试这个,如果我理解你的话:
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
显示下拉菜单按钮。
这是一些简单的 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
接受鼠标事件?
试试这个,如果我理解你的话:
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
显示下拉菜单按钮。