Skip to content

Commit bdb7e43

Browse files
[REFINE] improve drawRects method to handle QRect and sequence types
1 parent 80ec6ce commit bdb7e43

File tree

1 file changed

+9
-14
lines changed

1 file changed

+9
-14
lines changed

qwt/plot_canvas.py

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
"""
1515

1616
import os
17+
from collections.abc import Sequence
1718

1819
from qtpy.QtCore import QEvent, QObject, QPoint, QPointF, QRect, QRectF, QSize, Qt
1920
from qtpy.QtGui import (
@@ -34,8 +35,6 @@
3435
from qwt.null_paintdevice import QwtNullPaintDevice
3536
from qwt.painter import QwtPainter
3637

37-
QT_API = os.environ["QT_API"]
38-
3938

4039
class Border(object):
4140
def __init__(self):
@@ -71,19 +70,15 @@ def updateState(self, state):
7170
self.__origin = state.brushOrigin()
7271

7372
def drawRects(self, rects, count):
74-
if QT_API.startswith("pyside"):
75-
# Pyside
76-
if isinstance(rects, (QRect, QRectF)):
77-
self.border.rectList = [rects]
78-
elif isinstance(rects, list):
79-
self.border.rectList += rects
80-
else:
81-
for i in range(count):
82-
self.border.rectList += [rects.getRect().index(i)]
73+
if isinstance(rects, (QRect, QRectF)):
74+
self.border.rectList = [QRectF(rects)]
75+
elif isinstance(rects, Sequence):
76+
self.border.rectList.extend(QRectF(rects[i]) for i in range(count))
8377
else:
84-
# PyQt
85-
for i in range(count):
86-
self.border.rectList += [rects[i]]
78+
raise TypeError(
79+
"drawRects() expects a QRect, QRectF or a sequence of them, "
80+
f"but got {type(rects).__name__}"
81+
)
8782

8883
def drawPath(self, path):
8984
rect = QRectF(QPointF(0.0, 0.0), self.__size)

0 commit comments

Comments
 (0)