def __init__(self, center, radius, parent=None): QGraphicsPolygonItem.__init__(self, makeHexagon(center, radius), parent) self._center = center self._radius = radius self.setZValue(0) self.setBoundingRegionGranularity(1.0) self.setBrush(QBrush(QColor(0, center.y() % 256, center.x() % 256))) self.setPen(QPen(Qt.NoPen)) self.setAcceptHoverEvents(True)
def __init__(self, obj, parent=None, scene=None,\ brush=QBrush(), pen=QPen(Qt.blue, 0, Qt.SolidLine)) : """Adds QGraphics(Polygon)Item to the scene. Parameters obj : QPointF or shape type e.g. QPolygonF obj is QPointF - shape parameters are defined at first mouse click obj is QPolygonF - it will be drawn as is """ logger.debug('In DragPoly') poly = None if isinstance(obj, QPolygonF) : poly = obj elif isinstance(obj, QPointF) : poly = QPolygonF() poly.append(obj) #print('XXX DragPoly 0-point QPolygonF() size = %d' % poly.size()) if poly is None : logger.warning('DragPoly - wrong init object type:', str(obj)) return self._dragtype = POLY self._end_of_add = False self.poly0 = None parent_for_base = None QGraphicsPolygonItem.__init__(self, poly, parent_for_base) #DragBase.__init__(self, parent, brush, pen) # is called inside QGraphicsPolygonItem logger.debug('In DragPoly - superclass initialization is done') if isinstance(obj, QPointF) : self._drag_mode = ADD logger.debug('set elf._drag_mode = ADD, ADD:%d _drag_mode:%d' % (ADD, self._drag_mode)) if scene is not None: scene.addItem(self) if self._drag_mode == ADD : self.grabMouse() # makes available mouseMoveEvent logger.debug('In DragPoly mode grabMouse()') self.setAcceptHoverEvents(True) #self.setAcceptTouchEvents(True) #self.setAcceptedMouseButtons(Qt.LeftButton | Qt.RightButton) self.setPen(self._pen_pos) self.setBrush(self._brush) # Flags: ItemIsPanel, ItemClipsChildrenToShape, ItemIsSelectable, # ItemIsMovable, itemClipsToShape, ItemSendsScenePositionChanges self.setFlags(self.ItemIsSelectable)
def __init__(self, points, parent=None): QGraphicsPolygonItem.__init__(self, QPolygonF(points), parent) self.setPen(Qt.red)