首页 > 解决方案 > 无法将 [未定义] 分配给 QColor

问题描述

我正在使用 Qt 5.11 构建/运行代码。代码中有一个 QML 样式,如下所示:

// Button style delegate
    Component {
        id: enabledButtonStyle
        ButtonStyle {
            padding.top: 0
            padding.bottom: 0
            padding.right: 0
            padding.left: 0
            background: Rectangle {
                implicitHeight: enableButton.height
                implicitWidth: enableButton.width
                color: {
                    if ((buttonEnabled || hoverAlways) && enabled) {
                        if (propertyButton.hovered)
                            hoveredBgColor
                        else
                            defaultBgColor
                    } else {
                        selectedBgColor
                    }
                    if (propertyButton.pressed)
                        selectedBgColor
                }
            }
        }
    }

但是,我在线收到以下警告color: {

Unable to assign [undefined] to QColor

我不知道如何解决这个错误。有人可以给个提示吗?

标签: qtqmlqt5

解决方案


你必须使用return

color: {
    if ((buttonEnabled || hoverAlways) && enabled) {
        if (propertyButton.hovered)
            return hoveredBgColor
        else
            return defaultBgColor
    } else {
        return selectedBgColor
    }
    // will never enter this line since the if else is absolute.
    /*if (propertyButton.pressed)
        return selectedBgColor*/ 
}

推荐阅读