Qt qml 按钮悬停颜色

问题描述 投票:0回答:3

我有一个自定义的 QML 按钮,如下所示。

import QtQuick 2.15
import QtQuick.Controls 2.15

Button{
    id: dashId
    width: 155
    height: 40
    implicitWidth: 155
    implicitHeight: 40
    text: 'hello'
    flat: true

    property color colorNormal: '#353535'
    property color colorHovered: '#04b9b9'
    property color colorClicked: '#4d4f50'

    background: Rectangle{
        id: bgColor
        radius: 10
        color: internal.hoverColor
    }
    contentItem: Item {
        id: buttonItem
        visible: true
        Text {
            id: buttonText
            text: dashId.text
            anchors.centerIn: parent
            color: 'white'
        }
    }

    QtObject{
        id: internal

        property var hoverColor: if(dashId.down){
                                     dashId.down ? colorClicked : colorNormal
                                 }else{
                                     dashId.hovered ? colorHovered : colorNormal
                                 }

    }

}

悬停时,其默认悬停颜色仍然位于自定义悬停颜色之上,而不仅仅是自定义颜色。

我在 Windows 10 上使用 Qt6 和 QtQuick 1.14.1。

qt qml qt-quick qtquickcontrols2 qt6
3个回答
4
投票

我也有类似的问题。在 macOS 和 Linux 上,所有按钮均按预期呈现,但在 Windows 上,会过渡到所需的悬停颜色,然后按钮会淡出为白色。

问题已解决:

平:真实


1
投票

我发现了问题。 我必须在按钮内设置

highlighted: true
flat: true


0
投票

设置

flat: true
down: false
以消除所有变色效果!

© www.soinside.com 2019 - 2024. All rights reserved.