aboutsummaryrefslogtreecommitdiffstats
path: root/examples/widgets/tutorials/cannon/t14.py
diff options
context:
space:
mode:
Diffstat (limited to 'examples/widgets/tutorials/cannon/t14.py')
-rw-r--r--examples/widgets/tutorials/cannon/t14.py27
1 files changed, 12 insertions, 15 deletions
diff --git a/examples/widgets/tutorials/cannon/t14.py b/examples/widgets/tutorials/cannon/t14.py
index 8a3fe98e8..ac6924a3b 100644
--- a/examples/widgets/tutorials/cannon/t14.py
+++ b/examples/widgets/tutorials/cannon/t14.py
@@ -243,21 +243,18 @@ class CannonField(QWidget):
self._barrel_pressed = False
def paintEvent(self, event):
- painter = QPainter(self)
-
- if self._game_ended:
- painter.setPen(Qt.black)
- painter.setFont(QFont("Courier", 48, QFont.Bold))
- painter.drawText(self.rect(), Qt.AlignCenter, "Game Over")
-
- self.paint_cannon(painter)
- self.paint_barrier(painter)
- if self.is_shooting():
- self.paint_shot(painter)
- if not self._game_ended:
- self.paint_target(painter)
- # QPainter needs an explicit end() in PyPy. This will become a context manager in 6.3.
- painter.end()
+ with QPainter(self) as painter:
+ if self._game_ended:
+ painter.setPen(Qt.black)
+ painter.setFont(QFont("Courier", 48, QFont.Bold))
+ painter.drawText(self.rect(), Qt.AlignCenter, "Game Over")
+
+ self.paint_cannon(painter)
+ self.paint_barrier(painter)
+ if self.is_shooting():
+ self.paint_shot(painter)
+ if not self._game_ended:
+ self.paint_target(painter)
def paint_shot(self, painter):
painter.setPen(Qt.NoPen)