1

問題は、 を呼び出しQPropertyAnimation.start()ても何も起こらないことです。

Color はアニメーション化するプロパティで、button はクラスです。

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 questionでしたが、それでもそれを自分の答えに変えることはできませんでした。また、カスタム インターポレータについて何かを見ました。カスタム インターポレータを作成する必要がありますか。必要な場合、どうすればよいですか。

4

2 に答える 2