如何在运行时更改QML组件的样式?

时间:2018-01-17 05:17:03

标签: qt qml

我已经编写了一个带有圆形量规的QT应用程序

CircularGauge {
        id: circularGauge
        style: CircularGaugeStyle {
            needle: Rectangle {
                y: outerRadius * 0.15
                implicitWidth: outerRadius * 0.03
                implicitHeight: outerRadius * 0.9
                antialiasing: true
                color: Qt.rgba(0.66, 0.3, 0, 1)
            }
            minimumValueAngle: -145
            maximumValueAngle: 145
        }
        tickmarksVisible: true
    } 

我想在运行时更改minimumValueAngle和maximumValueAngle的值。 是否可以在运行时更改qml中的组件样式

1 个答案:

答案 0 :(得分:3)

由于样式项不能从外部访问,因此您应该以声明方式执行此操作,例如:

CircularGauge {
    id: circularGauge
    property int minValue: -145
    property int maxValue: 145        
    style: CircularGaugeStyle {
        id: circularGaugeStyle
        minimumValueAngle: circularGauge.minValue
        maximumValueAngle: circularGauge.maxValue
    }
}

Button {
    text: "Change values"
    onClicked: {
        circularGauge.minValue = -90;
        circularGauge.maxValue = 90;
    }
}