2015-03-19 252 views
0

我有一個PyQt應用程序樣式表格式的小部件。按鈕有一個CSS的變化(點擊)功能在他們身上,這樣:PyQt5按鈕動畫

CSS

但我想實現這一點:

動畫

有沒有一種方法來動畫樣式表如上所述,或者我必須操縱bu tton的繪畫事件,還是別的? 你能幫忙嗎?!

回答

1

您可能需要有這樣的事情...

from PyQt4 import QtGui 
import sys 
from PyQt4.QtCore import QSize 

class PB(QtGui.QPushButton): 
    def __init__(self, *args, **kwargs): 
     QtGui.QPushButton.__init__(self, *args, **kwargs) 
     self.setMouseTracking(True) 

    def mouseMoveEvent(self, event): 

     if event.pos().x()>self.width()-10 or event.pos().y()>self.height()-10\ 
        or event.pos().x() < 10 or event.pos().y()< 10: 
      bmp = QtGui.QIcon('/tmp/1.png') 
      self.setIcon(bmp) 

     else: 
      bmp = QtGui.QIcon('/tmp/2.png') 
      self.setIcon(bmp) 
     self.setIconSize(QSize(200,200)) 
     return QtGui.QPushButton.mouseMoveEvent(self, event) 

if __name__ == '__main__': 
    app = QtGui.QApplication(sys.argv) 
    w = QtGui.QWidget() 
    b = PB() 
    b.setParent(w) 
    b.setGeometry(50,50,200,200) 
    w.resize(300,300) 
    w.show() 
    sys.exit(app.exec_()) 

1.png2.png 使用附帶的圖像。

+0

謝謝,但我想動畫按鈕的點擊事件。 我有兩個樣式表方案,不知道如何在它們之間製作過渡動畫,如「動畫」gif。 – 2015-03-19 16:18:41