aboutsummaryrefslogtreecommitdiffstats
path: root/examples/widgets/itemviews
diff options
context:
space:
mode:
authorFriedemann Kleint <[email protected]>2024-12-17 10:40:47 +0100
committerFriedemann Kleint <[email protected]>2025-02-06 09:56:05 +0100
commit8f452f3d4d863f77f2b5054a4f17c25034b1b339 (patch)
tree5ec81f0078f615e43dfb692de618eb5f4b42e6fa /examples/widgets/itemviews
parent38912923dfa6ae6f119dec56b3b11ceedbc81e1b (diff)
Use new 6.9 API in examples
Task-number: PYSIDE-2862 Change-Id: I45f0cafa5276ed7c387b903962f2845a23c327e8 Reviewed-by: Ece Cinucen <[email protected]> Reviewed-by: Cristian Maureira-Fredes <[email protected]>
Diffstat (limited to 'examples/widgets/itemviews')
-rw-r--r--examples/widgets/itemviews/stardelegate/starrating.py43
1 files changed, 20 insertions, 23 deletions
diff --git a/examples/widgets/itemviews/stardelegate/starrating.py b/examples/widgets/itemviews/stardelegate/starrating.py
index 694bb43eb..96c08fca7 100644
--- a/examples/widgets/itemviews/stardelegate/starrating.py
+++ b/examples/widgets/itemviews/stardelegate/starrating.py
@@ -6,7 +6,7 @@ from __future__ import annotations
from math import (cos, sin, pi)
-from PySide6.QtGui import (QPainter, QPolygonF)
+from PySide6.QtGui import (QPainter, QPainterStateGuard, QPolygonF)
from PySide6.QtCore import (QPointF, QSize, Qt)
PAINTING_SCALE_FACTOR = 20
@@ -39,25 +39,22 @@ class StarRating:
def paint(self, painter, rect, palette, isEditable=False):
""" Paint the stars (and/or diamonds if we're in editing mode). """
- painter.save()
-
- painter.setRenderHint(QPainter.RenderHint.Antialiasing, True)
- painter.setPen(Qt.PenStyle.NoPen)
-
- if isEditable:
- painter.setBrush(palette.highlight())
- else:
- painter.setBrush(palette.windowText())
-
- y_offset = (rect.height() - PAINTING_SCALE_FACTOR) / 2
- painter.translate(rect.x(), rect.y() + y_offset)
- painter.scale(PAINTING_SCALE_FACTOR, PAINTING_SCALE_FACTOR)
-
- for i in range(self.MAX_STAR_COUNT):
- if i < self.star_count:
- painter.drawPolygon(self._star_polygon, Qt.FillRule.WindingFill)
- elif isEditable:
- painter.drawPolygon(self._diamond_polygon, Qt.WindingFill)
- painter.translate(1.0, 0.0)
-
- painter.restore()
+ with QPainterStateGuard(painter):
+ painter.setRenderHint(QPainter.RenderHint.Antialiasing, True)
+ painter.setPen(Qt.NoPen)
+
+ if isEditable:
+ painter.setBrush(palette.highlight())
+ else:
+ painter.setBrush(palette.windowText())
+
+ y_offset = (rect.height() - PAINTING_SCALE_FACTOR) / 2
+ painter.translate(rect.x(), rect.y() + y_offset)
+ painter.scale(PAINTING_SCALE_FACTOR, PAINTING_SCALE_FACTOR)
+
+ for i in range(self.MAX_STAR_COUNT):
+ if i < self.star_count:
+ painter.drawPolygon(self._star_polygon, Qt.FillRule.WindingFill)
+ elif isEditable:
+ painter.drawPolygon(self._diamond_polygon, Qt.FillRule.WindingFill)
+ painter.translate(1.0, 0.0)