diff --git a/qwt/plot_canvas.py b/qwt/plot_canvas.py index c7c7950..1b90ed1 100644 --- a/qwt/plot_canvas.py +++ b/qwt/plot_canvas.py @@ -13,7 +13,7 @@ :members: """ -import os +from collections.abc import Sequence from qtpy.QtCore import QEvent, QObject, QPoint, QPointF, QRect, QRectF, QSize, Qt from qtpy.QtGui import ( @@ -34,8 +34,6 @@ from qwt.null_paintdevice import QwtNullPaintDevice from qwt.painter import QwtPainter -QT_API = os.environ["QT_API"] - class Border(object): def __init__(self): @@ -71,17 +69,15 @@ def updateState(self, state): self.__origin = state.brushOrigin() def drawRects(self, rects, count): - if QT_API.startswith("pyside"): - # Pyside - if isinstance(rects, (QRect, QRectF)): - self.border.list = [rects] - else: - for i in range(count): - self.border.rectList += [rects.getRect().index(i)] + if isinstance(rects, (QRect, QRectF)): + self.border.rectList = [QRectF(rects)] + elif isinstance(rects, Sequence): + self.border.rectList.extend(QRectF(rects[i]) for i in range(count)) else: - # PyQt - for i in range(count): - self.border.rectList += [rects[i]] + raise TypeError( + "drawRects() expects a QRect, QRectF or a sequence of them, " + f"but got {type(rects).__name__}" + ) def drawPath(self, path): rect = QRectF(QPointF(0.0, 0.0), self.__size)