Typeerror: Pyqt4.qtcore.qvariantanimation Represents A C++ Abstract Class And Cannot Be Instantiated
I have this PyQt5 snippet that I'm trying to convert into PyQt4. The PyQt5 version works great but when I try to convert into PyQt4, I get this error. I removed QtWidgets but I sti
Solution 1:
In Qt4 updateCurrentValue() is a pure virtual method that needs to be implemented, in the case of Qt5 it is changing to be only a virtual method, in the first case C++ forces to implement it but with the change of Qt5 it is no longer necessary, so the solution is implement that method:
# ...
class VariantAnimation(QtCore.QVariantAnimation):
def updateCurrentValue(self, value):
pass
class LineEdit(QtGui.QLineEdit):
def __init__(self):
super(LineEdit, self).__init__()
self.textChanged.connect(self.start_animation)
self.animation = VariantAnimation(
startValue=QtGui.QColor(255, 127, 127),
endValue=QtGui.QColor(255, 255, 255),
duration=1000,
valueChanged=self.on_color_change,
)
# ...
@QtCore.pyqtSlot(QtCore.QVariant)
@QtCore.pyqtSlot(QtGui.QColor)
def on_color_change(self, color):
if isinstance(color, QtCore.QVariant):
color = QtGui.QColor(color)
self.setStyleSheet("QLineEdit{background-color: %s}" % (color.name(),))
# ...
Post a Comment for "Typeerror: Pyqt4.qtcore.qvariantanimation Represents A C++ Abstract Class And Cannot Be Instantiated"