diff options
author | Marcelo Lira <marcelo.lira@openbossa.org> | 2010-12-21 08:45:39 -0300 |
---|---|---|
committer | Marcelo Lira <marcelo.lira@openbossa.org> | 2010-12-21 08:45:39 -0300 |
commit | 2f08ad954cca70ff7388240321d34e0162d1f3eb (patch) | |
tree | a69b474ef9a63e546f24044e2f594b8843691764 /examples | |
parent | 320b49b221ae2881c2aa4ca962ce0e2faa7e41c2 (diff) |
counterlabel example updated.
Diffstat (limited to 'examples')
-rwxr-xr-x | examples/designer/plugins/widgets/counterlabel.py | 84 |
1 files changed, 42 insertions, 42 deletions
diff --git a/examples/designer/plugins/widgets/counterlabel.py b/examples/designer/plugins/widgets/counterlabel.py index 4d424d4..4a19f8e 100755 --- a/examples/designer/plugins/widgets/counterlabel.py +++ b/examples/designer/plugins/widgets/counterlabel.py @@ -29,21 +29,21 @@ from PySide import QtCore, QtGui class CounterLabel(QtGui.QWidget): """CounterLabel(QtGui.QWidget) - + Provides a custom label widget to be used as a counter, with signals similar to those provided by QAbstractSlider subclasses and properties similar to those provided by QLabel. """ - + # We define two signals that are used to indicate changes to the status # of the widget. __pyqtSignals__ = ("valueChanged(int)", "valueChanged(const QString &)") - + def __init__(self, parent = None): - + QtGui.QWidget.__init__(self, parent) self.setAutoFillBackground(False) - + self._font = QtGui.QFont() self._minimum = 1 self._maximum = 1 @@ -51,9 +51,9 @@ class CounterLabel(QtGui.QWidget): self._offset = 0 self.rescale() self.reposition() - + def paintEvent(self, event): - + p = QtGui.QPainter() p.begin(self) p.setRenderHint(QtGui.QPainter.Antialiasing) @@ -62,57 +62,57 @@ class CounterLabel(QtGui.QWidget): p.scale(self._scale, self._scale) p.drawText(self._xpos, self._ypos, str(self._value)) p.end() - + def sizeHint(self): return QtCore.QSize(32, 32) - + def rescale(self): - + fm = QtGui.QFontMetricsF(self._font, self) maxRect = fm.boundingRect(QtCore.QRectF(self.rect()), QtCore.Qt.AlignCenter, str(self._maximum)) xscale = float(self.width())/maxRect.width() yscale = float(self.height())/maxRect.height() self._scale = min(xscale, yscale) - + def reposition(self): - + fm = QtGui.QFontMetricsF(self._font, self) rect = fm.boundingRect(QtCore.QRectF(self.rect()), QtCore.Qt.AlignCenter, str(self._value)) self._xpos = -rect.width()/2.0 self._ypos = rect.height()/2.0 - fm.descent() self.update() - + # Provide getter and setter methods for the font property. - + def getFont(self): return self._font - + def setFont(self, font): self._font = font self.rescale() self.reposition() - - font = QtCore.pyqtProperty("QFont", getFont, setFont) - + + font = QtCore.Property("QFont", getFont, setFont) + # Provide getter and setter methods for the minimum and maximum properties. - + def getMinimum(self): return self._minimum - + def setMinimum(self, value): self._minimum = value if self._minimum > self._maximum: self.setMaximum(self._minimum) if self._minimum > self._value: self.setValue(self._minimum) - - minimum = QtCore.pyqtProperty("int", getMinimum, setMinimum) - + + minimum = QtCore.Property("int", getMinimum, setMinimum) + def getMaximum(self): return self._maximum - + def setMaximum(self, value): self._maximum = value self._minimum = min(self._minimum, self._maximum) @@ -120,28 +120,28 @@ class CounterLabel(QtGui.QWidget): self.setValue(self._maximum) self.rescale() self.reposition() - - maximum = QtCore.pyqtProperty("int", getMaximum, setMaximum) - + + maximum = QtCore.Property("int", getMaximum, setMaximum) + # We provide an offset property to allow the value shown to differ from # the internal value held by the widget. - + def getOffset(self): return self._offset - + def setOffset(self, value): self._offset = value - - offset = QtCore.pyqtProperty("int", getOffset, setOffset) - + + offset = QtCore.Property("int", getOffset, setOffset) + # The value property is implemented using the getValue() and setValue() # methods. - + def getValue(self): return self._value - + # The setter method for the value property can also be used as a slot. - @QtCore.pyqtSignature("setValue(int)") + @QtCore.Slot(int) def setValue(self, value): if not self._minimum <= value <= self._maximum: return @@ -150,17 +150,17 @@ class CounterLabel(QtGui.QWidget): self.emit(QtCore.SIGNAL("valueChanged(const QString &)"), QtCore.QString(str(value + self._offset))) self.reposition() - - value = QtCore.pyqtProperty("int", getValue, setValue) - + + value = QtCore.Property("int", getValue, setValue) + # Like QAbstractSpinBox, we provide stepUp() and stepDown() slots to # enable the value to be incremented and decremented. - - @QtCore.pyqtSignature("stepUp()") + + @QtCore.Slot() def stepUp(self): self.setValue(self._value + 1) - - @QtCore.pyqtSignature("stepDown()") + + @QtCore.Slot() def stepDown(self): self.setValue(self._value - 1) |