首页 文章

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

提问于
浏览
0

我已经写了一个带有圆形量规的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 回答

  • 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;
        }
    }
    

相关问题