Цвет наведения кнопки Qt qml

У меня есть собственный QML Buton, как показано ниже.

      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
                                 }

    }

}

при наведении у него по-прежнему будет свой цвет наведения по умолчанию поверх настраиваемого цвета при наведении, а не только на настраиваемый цвет.

Я использую Qt6 и QtQuick 1.14.1 в Windows 10.

3 ответа

У меня была аналогичная проблема. В macOS и Linux все кнопки отображались должным образом, но в Windows произошел переход к желаемому цвету при наведении курсора, и после этого кнопка стала белой.

Проблема была решена с помощью:

квартира: правда

Я нашел проблему. Я должен был установить highlighted: true и flat: true внутри моей кнопки.

Наборflat: trueиdown: falseчтобы избавиться от всех эффектов изменения цвета!

Другие вопросы по тегам