如何在按下并释放时更改 qml 按钮的背景图像

Bal*_*ran 1 qt qml qtquick2 qt5.4

Button我需要更改按下时的背景图像。如果在按下之前有背景图像Button,则需要在按下时更改该背景图像,然后在释放Button时将其设置回原始背景图像。Button

这是我当前的代码:

property bool bImgChange: true

Button {
    id: bu
    x: 121
    y: 40
    iconSource: "q.png"
    activeFocusOnPress: false
    opacity: 1
    checkable: true
    checked: true
    Layout.minimumWidth: 100
    Layout.minimumHeight: 100

    onClicked: {
        if ( bImgChange == true )
        {
            bu.iconSource = "index.png"
            bImgChange = false
        }
        else
        {
            bu.iconSource = "q.png"
            bImgChange = true
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

上面的代码仅在Button单击时设置背景图像,而我需要在按下和释放时更改背景图像。

dou*_*uyw 5

Button有一个pressed可以像这样使用的属性:

Item {
    Image { source: btn.pressed? "image1.png" : "image2.png"; ...}
    Button { id: btn; ... }
}
Run Code Online (Sandbox Code Playgroud)

或者,如果您想更改 的iconSourceButton您可以尝试如下操作:

Button {
    iconSource: pressed? "image1.png" : "image2.png"
}
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你。