diff options
author | Friedemann Kleint <[email protected]> | 2024-12-17 10:40:47 +0100 |
---|---|---|
committer | Friedemann Kleint <[email protected]> | 2025-02-06 09:56:05 +0100 |
commit | 8f452f3d4d863f77f2b5054a4f17c25034b1b339 (patch) | |
tree | 5ec81f0078f615e43dfb692de618eb5f4b42e6fa /examples/widgets/itemviews | |
parent | 38912923dfa6ae6f119dec56b3b11ceedbc81e1b (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.py | 43 |
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) |