问题是,当我叫QPropertyAnimation.start()
没有任何反应。
颜色是我在动画和按钮是类属性。
class Button(QPushButton):
def __init__(self,text="",parent=None):
super(Button,self).__init__(text,parent)
# ...
self.innercolor = QColor(200,0,20)
def setcolor(self,value): self.innercolor = value
def getcolor(self): return self.innercolor
color = Property(QColor,getcolor,setcolor)
def paintEvent(self, event):
p = QPainter(self)
p.fillRect(self.rect(),self.color)
# ...
p.end()
def animated(self,value): print "animating"; self.update()
def enterEvent(self, event):
ani = QPropertyAnimation(self,"color")
ani.setStartValue(self.color)
ani.setEndValue(QColor(0,0,10))
ani.setDuration(2000)
ani.valueChanged.connect(self.animated)
ani.start()
print ani.state()
return QPushButton.enterEvent(self, event)
我很困惑,因为"animating"
从来没有打印出来,但ani.state()
表示,在动画运行。
我不要求调试我的代码或什么,但我想一定是我丢失的东西,无论是在我的代码或我使用的理解QPropertyAnimation
。
我搜索谷歌的答案,但无论如何,一无所获,没有什么与我有关。 我发现的最接近是另一个SO问题 ,但我还是不能把它转换成给自己一个答案。 我也看到了一些关于自定义插值,做我需要做一个自定义的内插器,如果是这样,我怎么做。