gpt4 book ai didi

qt - 如何动态更新矩形的渐变?

转载 作者:行者123 更新时间:2023-12-01 12:48:59 25 4
gpt4 key购买 nike

我有这个:

    Rectangle{
id:testrect

property color gradcolor:"#8C8F8C"
gradient:
Gradient {
GradientStop { position: 0.0; color: gradcolor }
GradientStop { position: 0.17; color: "#6A6D6A" }
GradientStop { position: 0.77; color: gradcolor }
GradientStop { position: 1.0; color: "#6A6D6A" }
}

在子 MouseArea 中,我想这样做:

         onEntered: {
testrect.gradcolor="white"
parent.border.color = Qt.lighter("#6A6D6A")

边框颜色根据需要改变,但渐变颜色没有。是因为渐变不是实时从 gradcolor 属性拉出来的吗?解决这个问题的最佳方法是什么?

最佳答案

问题似乎是您的 Gradient 元素未链接到 gradcolor 如果您不指明哪个元素包含该属性。这对我有用:

Rectangle{
id:testrect
width: 200
height: 200
property color gradcolor: "green"
gradient: Gradient {
GradientStop { position: 0.0; color: testrect.gradcolor }
GradientStop { position: 0.17; color: "#6A6D6A" }
GradientStop { position: 0.77; color: testrect.gradcolor }
GradientStop { position: 1.0; color: "#6A6D6A" }
}

MouseArea {
anchors.fill:parent
hoverEnabled: true // Mandatory for hover events to work
onEntered: {
testrect.gradcolor = "red";
}
onExited: {
testrect.gradcolor = "blue";
}
}
}

可以找到有关 QML 范围的更多信息 here

关于qt - 如何动态更新矩形的渐变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18119060/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com