2015-03-19 95 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