我有一个按钮。我想更改按钮的状态,例如:
默认图像为black
。
onEntered
我希望图像为blue
,onExited
我希望图像为black
(等于默认状态),onReleased
我希望图像为{{1} }(等于onEntered状态)。
注意:
blue
应该在按钮内部有效,而按钮onRelease
外部则无效。
如何实现?
鼠标区域如下所示:
onRelease
我面临的问题是:
MouseArea
{
anchors.fill: firstImage(parent)
onEntered:
{
firstImage.source = "blue.img"
}
onExited:
{
firstImage.source = "black.img"
}
onReleased:
{
firstImage.source = "blue.img"
}
}
在按钮外处于活动状态。
我希望onRelease
在按钮内释放时处于活动状态。
答案 0 :(得分:0)
您可以利用以下事实:可以为qml中的每个对象提供额外的自定义属性。
我想出了以下内容,这似乎是您的要求,但是,我发现了一个缺陷,因为当您“输入”并按时,按钮将进入输入状态,因此在处于“释放”状态,离开MouseArea后,它将再次进入“已退出”状态。
注意,我没有复制firstImage.source内容,但是您可以根据自己的情况轻松定制此示例
import QtQuick.Controls 2.4
Button {
hoverEnabled: true
property bool touched : false
onHoveredChanged: touched = hovered
onReleased: touched = true
text: touched ? "touched" : "not touched"
}
需要设置hoverEnabled