def __init__( self, item: QGraphicsItem, parent: Optional[QGraphicsLayoutItem] = None, anchor=(0., 0.), anchorItem=(0., 0.), resizeContents=False, aspectMode=Qt.IgnoreAspectRatio, **kwargs ) -> None: sizePolicy: Optional[QSizePolicy] = kwargs.pop("sizePolicy", None) super().__init__(parent, **kwargs) self.__anchorThis = anchor self.__anchorItem = anchorItem self.__resizeContents = resizeContents self.__aspectMode = aspectMode self.__transform = None # type: Optional[QGraphicsScale] self.__scale = (Fraction(1), Fraction(1)) if resizeContents: self.__transform = QGraphicsScale() trs = item.transformations() item.setTransformations(trs + [self.__transform]) self.item = item self.setGraphicsItem(item) if sizePolicy is not None: self.setSizePolicy(sizePolicy) self.__layout()
def __init__(self, parent=None, icon=None, iconSize=None, **kwargs): QGraphicsItem.__init__(self, parent, **kwargs) self.setFlag(QGraphicsItem.ItemUsesExtendedStyleOption, True) if icon is None: icon = QIcon() if iconSize is None: style = QApplication.instance().style() size = style.pixelMetric(style.PM_LargeIconSize) iconSize = QSize(size, size) self.__transformationMode = Qt.SmoothTransformation self.__iconSize = QSize(iconSize) self.__icon = QIcon(icon) self._opacity = 1 self.anim = QPropertyAnimation(self, b"opacity") self.anim.setDuration(350) self.anim.setStartValue(1) self.anim.setKeyValueAt(0.5, 0) self.anim.setEndValue(1) self.anim.setEasingCurve(QEasingCurve.OutQuad) self.anim.setLoopCount(5)
def qgraphicsitem_style(item: QGraphicsItem) -> QStyle: if item.isWidget(): return item.style() parent = item.parentWidget() if parent is not None: return parent.style() scene = item.scene() if scene is not None: return scene.style() return QApplication.style()
def __init__(self, id, title='', title_above=False, title_location=AxisMiddle, line=None, arrows=0, plot=None, bounds=None): QGraphicsItem.__init__(self) self.setFlag(QGraphicsItem.ItemHasNoContents) self.setZValue(AxisZValue) self.id = id self.title = title self.title_location = title_location self.data_line = line self.plot = plot self.graph_line = None self.size = None self.scale = None self.tick_length = (10, 5, 0) self.arrows = arrows self.title_above = title_above self.line_item = QGraphicsLineItem(self) self.title_item = QGraphicsTextItem(self) self.end_arrow_item = None self.start_arrow_item = None self.show_title = False self.scale = None path = QPainterPath() path.setFillRule(Qt.WindingFill) path.moveTo(0, 3.09) path.lineTo(0, -3.09) path.lineTo(9.51, 0) path.closeSubpath() self.arrow_path = path self.label_items = [] self.label_bg_items = [] self.tick_items = [] self._ticks = [] self.zoom_transform = QTransform() self.labels = None self.values = None self._bounds = bounds self.auto_range = None self.auto_scale = True self.zoomable = False self.update_callback = None self.max_text_width = 50 self.text_margin = 5 self.always_horizontal_text = False
def __init__(self, parent=None, icon=None, iconSize=None, **kwargs): QGraphicsItem.__init__(self, parent, **kwargs) self.setFlag(QGraphicsItem.ItemUsesExtendedStyleOption, True) if icon is None: icon = QIcon() if iconSize is None: style = QApplication.instance().style() size = style.pixelMetric(style.PM_LargeIconSize) iconSize = QSize(size, size) self.__transformationMode = Qt.SmoothTransformation self.__iconSize = QSize(iconSize) self.__icon = QIcon(icon)
def map_to_viewport(view: QGraphicsView, item: QGraphicsItem, point: QPointF) -> QPoint: point = item.mapToScene(point) return view.mapFromScene(point)