gpt4 book ai didi

qt - QML- MouseArea中未检测到右键单击

转载 作者:行者123 更新时间:2023-12-03 15:04:14 24 4
gpt4 key购买 nike

我正在使用图像编辑器,尤其是使用MouseArea(在Button类型内部)设置当前左或右按钮的关联颜色。我遇到的问题是,我似乎根本无法为特定的按钮进行过滤。这是给我带来麻烦的摘要:

    Button {
x: 60
width: 80
height: 40
text: "Blue"

anchors.verticalCenter: parent.verticalCenter

onButtonClick: {
if(mouseArea.pressedButtons & Qt.RightButton) {
console.log("Right button used");
GlobalState.setRightColorValues(0.0, 0.0, 1.0, 1.0);
} else {
console.log("Left button used");
GlobalState.setLeftColorValues(0.0, 0.0, 1.0, 1.0);
}
}
}

(如果需要,我可以提供Button.qml的全部内容,但这主要来自 here)。

我正在尝试遵循示例 here,但是用于过滤鼠标右键的方法似乎不起作用(无论如何,它仍然没有作用)。发生的情况是语句“默认值”假设为左键单击。我还尝试将两者分成不同的if语句,但是这样做不会导致按钮被显式过滤。

为了过滤特定的鼠标按钮需要更改什么?还是我必须实现在Paint/Paint.NET中使用的那种“切换原色”按钮?

编辑1:我已经意识到Button.qml-中缺少相关的代码段
 MouseArea{
id: buttonMouseArea;

acceptedButtons: Qt.AllButtons;
hoverEnabled: true

onEntered: parent.color = onHoverColor
onExited: parent.color = buttonColor

anchors.fill: parent;

onClicked: buttonClick();
}

这是嵌套在 Rectangle内的,它也包含 Text字段。

最佳答案

默认情况下,MouseArea仅处理鼠标左键。您可以通过设置acceptedButtons属性来处理其他按钮

MouseArea {
acceptedButtons: Qt.LeftButton | Qt.RightButton
}

参见 http://qt-project.org/doc/qt-5.0/qtquick/qml-qtquick2-mousearea.html#acceptedButtons-prop

关于qt - QML- MouseArea中未检测到右键单击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22443641/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com