Exemple #1
0
 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)
Exemple #2
0
    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)
Exemple #3
0
 def __init__(self, points, parent=None):
     QGraphicsPolygonItem.__init__(self, QPolygonF(points), parent)
     self.setPen(Qt.red)