我做了所有事情[直到我知道]为按钮的背景颜色设置动画,但我不能这样做。以下是我的尝试之一:
# I set the style of the button by setstylesheet()
animation = QPropertyAnimation(btn, "style",btn)
animation.setDuration(1000)
animation.setStartValue(QStyle("background-color:blue"))
animation.setEndValue(QStyle("background-color:red"))
animation.start()
但以下代码显示以下错误:
animation.setStartValue(将QStyle( “背景色:蓝色”)) TypeError:PyQt4.QtGui.QStyle表示C ++抽象类,无法实例化
我也尝试设置调色板:
color = install_btn.palette()
color.setColor(QPalette.Base,QColor(72, 152, 219))
install_btn.setAutoFillBackground(True)
install_btn.setPalette(color)
然后在上面的动画值中代替QStyle
我写了QColor(r,g,b)
但是这也没有用,它说:
QPropertyAnimation:您正在尝试为QObject的不存在的属性样式设置动画
请用您认识的任何语言(C ++或Python)帮助我。但我使用Python。
谢谢特别
答案 0 :(得分:3)
C ++,Qt5,但可以在Qt4中使用
QGraphicsColorizeEffect *eEffect= new QGraphicsColorizeEffect(btn);
btn->setGraphicsEffect(eEffect);
QPropertyAnimation *paAnimation = new QPropertyAnimation(eEffect,"color");
paAnimation->setStartValue(QColor(Qt::blue));
paAnimation->setEndValue(QColor(Qt::red));
paAnimation->setDuration(1000);
paAnimation->start();