aboutsummaryrefslogtreecommitdiffstats
path: root/examples/widgetbinding/wigglywidget.py
diff options
context:
space:
mode:
authorChristian Tismer <tismer@stackless.com>2022-01-26 12:49:43 +0100
committerChristian Tismer <tismer@stackless.com>2022-01-26 16:47:13 +0000
commitb61f735acd8fa2e43a68d7d90f977d8f1506052a (patch)
tree9a5f4fb9debe1d7d51119ea9e169e58bc47bc62f /examples/widgetbinding/wigglywidget.py
parentdc2046124f132ba0187d1bff97364448288b1cd6 (diff)
examples: Turn most QPainter instances into context managers
After the new context manager is in place, most of the examples benefit from moving QPainter into a `with` statement. The comments concerning PyPy could be removed, again. [ChangeLog][PySide6] The examples are updated to use the new context manager for QPainter. Task-number: PYSIDE-535 Change-Id: Idf7e1f734d549ed663383ffbb2416297ebb1e0c7 Reviewed-by: Christian Tismer <tismer@stackless.com>
Diffstat (limited to 'examples/widgetbinding/wigglywidget.py')
-rw-r--r--examples/widgetbinding/wigglywidget.py21
1 files changed, 9 insertions, 12 deletions
diff --git a/examples/widgetbinding/wigglywidget.py b/examples/widgetbinding/wigglywidget.py
index 11f4a81a5..63034dcff 100644
--- a/examples/widgetbinding/wigglywidget.py
+++ b/examples/widgetbinding/wigglywidget.py
@@ -89,18 +89,15 @@ class WigglyWidget(QWidget):
y = (self.height() + metrics.ascent() - metrics.descent()) / 2
color = QColor()
- painter = QPainter(self)
- for i in range(len(self.text)):
- index = (self._step + i) % 16
- color.setHsv((15 - index) * 16, 255, 191)
- painter.setPen(color)
- dy = (sineTable[index] * metrics.height()) / 400
- c = self._text[i]
- painter.drawText(x, y - dy, str(c))
- x += metrics.horizontalAdvance(c)
-
- # QPainter needs an explicit end() in PyPy. This will become a context manager in 6.3.
- painter.end()
+ with QPainter(self) as painter:
+ for i in range(len(self.text)):
+ index = (self._step + i) % 16
+ color.setHsv((15 - index) * 16, 255, 191)
+ painter.setPen(color)
+ dy = (sineTable[index] * metrics.height()) / 400
+ c = self._text[i]
+ painter.drawText(x, y - dy, str(c))
+ x += metrics.horizontalAdvance(c)
def timerEvent(self, event):
if event.timerId() == self._timer.timerId():