def __select_range(self, p1: QPointF, p2: QPointF): rect = QRectF(p1, p2).normalized() self.__selection.append((rect.topLeft().x(), rect.topRight().x())) sel_rect_item = SelectionRect(rect) self.addItem(sel_rect_item) self.__selection_rect_items.append(sel_rect_item)
def qgraphicsview_map_rect_from_scene(view: QGraphicsView, rect: QRectF) -> QPolygonF: """Like QGraphicsView.mapFromScene(QRectF) but returning a QPolygonF (without rounding). """ tr = view.viewportTransform() p1 = tr.map(rect.topLeft()) p2 = tr.map(rect.topRight()) p3 = tr.map(rect.bottomRight()) p4 = tr.map(rect.bottomLeft()) return QPolygonF([p1, p2, p3, p4])