diff options
Diffstat (limited to 'examples/widgets/painting/concentriccircles/concentriccircles.py')
-rw-r--r-- | examples/widgets/painting/concentriccircles/concentriccircles.py | 35 |
1 files changed, 16 insertions, 19 deletions
diff --git a/examples/widgets/painting/concentriccircles/concentriccircles.py b/examples/widgets/painting/concentriccircles/concentriccircles.py index 2786396cb..c6bada0a6 100644 --- a/examples/widgets/painting/concentriccircles/concentriccircles.py +++ b/examples/widgets/painting/concentriccircles/concentriccircles.py @@ -78,25 +78,22 @@ class CircleWidget(QWidget): self.update() def paintEvent(self, event): - painter = QPainter(self) - painter.setRenderHint(QPainter.Antialiasing, self.antialiased) - painter.translate(self.width() / 2, self.height() / 2) - - for diameter in range(0, 256, 9): - delta = abs((self._frame_no % 128) - diameter / 2) - alpha = 255 - (delta * delta) / 4 - diameter - if alpha > 0: - painter.setPen(QPen(QColor(0, diameter / 2, 127, alpha), 3)) - - if self._float_based: - painter.drawEllipse(QRectF(-diameter / 2.0, - -diameter / 2.0, diameter, diameter)) - else: - painter.drawEllipse(QRect(-diameter / 2, - -diameter / 2, diameter, diameter)) - - # QPainter needs an explicit end() in PyPy. This will become a context manager in 6.3. - painter.end() + with QPainter(self) as painter: + painter.setRenderHint(QPainter.Antialiasing, self.antialiased) + painter.translate(self.width() / 2, self.height() / 2) + + for diameter in range(0, 256, 9): + delta = abs((self._frame_no % 128) - diameter / 2) + alpha = 255 - (delta * delta) / 4 - diameter + if alpha > 0: + painter.setPen(QPen(QColor(0, diameter / 2, 127, alpha), 3)) + + if self._float_based: + painter.drawEllipse(QRectF(-diameter / 2.0, + -diameter / 2.0, diameter, diameter)) + else: + painter.drawEllipse(QRect(-diameter / 2, + -diameter / 2, diameter, diameter)) class Window(QWidget): |