Пример #1
0
 def __create_parts(self):
     """Create circles and rectangle."""
     dir_vec = QtGui.QVector2D(self.__end.x() - self.__begin.x(),
                               self.__end.y() - self.__begin.y())
     dir_vec.normalize()
     norm_vec = QtGui.QVector2D(-dir_vec.y(), dir_vec.x())
     vecs = [
         QtGui.QVector2D(self.__begin) + self.__radius * norm_vec,
         QtGui.QVector2D(self.__end) + self.__radius * norm_vec,
         QtGui.QVector2D(self.__end) - self.__radius * norm_vec,
         QtGui.QVector2D(self.__begin) - self.__radius * norm_vec,
     ]
     self.__polygon = QtWidgets.QGraphicsPolygonItem(
         QtGui.QPolygonF([QtCore.QPointF(vec.x(), vec.y())
                          for vec in vecs]))
     self.__ellipse_1 = QtWidgets.QGraphicsEllipseItem(
         self.__begin.x() - self.__radius,
         self.__begin.y() - self.__radius, 2 * self.__radius,
         2 * self.__radius)
     self.__ellipse_2 = QtWidgets.QGraphicsEllipseItem(
         self.__end.x() - self.__radius,
         self.__end.y() - self.__radius, 2 * self.__radius,
         2 * self.__radius)
     for item in (self.__ellipse_1, self.__ellipse_2, self.__polygon):
         item.setPen(self.__pen)
         item.setBrush(self.__brush)
Пример #2
0
    def __init__(self, size, value):
        super().__init__()

        #Count the amount of hitsplat timer cycles before splat is removed
        self.counter = 0

        self.background = QtWidgets.QGraphicsEllipseItem(0, 0, size, size)
        if value == 0:
            brush = QtGui.QBrush(QtGui.QColor(0, 0, 255))
        else:
            brush = QtGui.QBrush(QtGui.QColor(255, 0, 0))
        self.background.setBrush(brush)
        self.addToGroup(self.background)

        #Hitsplat displays damage value

        self.text_item = QtWidgets.QGraphicsTextItem("-" + str(value))

        #Hitsplat clolor based on damage
        if value < 10:
            self.text_item.setPos(6, 0)
        else:
            self.text_item.setPos(2, 0)

        self.text_item.setDefaultTextColor(QtGui.QColor(255, 255, 255))
        font = QtGui.QFont()
        font.setPixelSize(16)
        font.setBold(True)
        self.text_item.setFont(font)
        self.addToGroup(self.text_item)
Пример #3
0
 def shoot(self, rightKey):
     if self.projectile == None:
         self.projectile = QtWidgets.QGraphicsEllipseItem(
             self.x(), self.y(), 20, 20)
         self.projectile.setBrush(self.projectile_brush)
         self.temp_x = self.x()
         self.projectile_rKey = rightKey
Пример #4
0
    def mousePressEvent(self, event):
        self.begin = self.end = event.scenePos()
        self.item = self.itemAt(self.begin, QtGui.QTransform())
        if self.item:
            if self.tool == 'erase':
                self.removeItem(self.item)

            elif self.tool == "move":
                self.offset = self.begin - self.item.pos()

        elif self.tool == 'rectangle':
            self.rect = QtWidgets.QGraphicsRectItem(self.begin.x(),
                                                    self.begin.y(), 0, 0)

        elif self.tool == 'ellipse':
            self.ellipse = QtWidgets.QGraphicsEllipseItem(
                self.begin.x(), self.begin.y(), 0, 0)

        elif self.tool == 'line':
            self.line = QtWidgets.QGraphicsLineItem(self.begin.x(),
                                                    self.begin.y(),
                                                    self.end.x(), self.end.y())

        elif self.tool == 'polygon':
            c = event.scenePos()
            self.polyRects.append(
                QtWidgets.QGraphicsRectItem(c.x() - 10,
                                            c.y() - 10, 20, 20))
            self.addItem(self.polyRects[-1])
            self.polygon.append(c)
Пример #5
0
    def __init__(self, port, graph, hOffset, color, connectionPointType):
        super(PortCircle, self).__init__(port)

        self.__port = port
        self._graph = graph
        self._connectionPointType = connectionPointType
        self.__connections = set()
        self._supportsOnlySingleConnections = connectionPointType == 'In'

        self.setSizePolicy(
            QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed,
                                  QtWidgets.QSizePolicy.Fixed))
        size = QtCore.QSizeF(self.__diameter, self.__diameter)
        self.setPreferredSize(size)
        self.setWindowFrameMargins(0, 0, 0, 0)

        self.transform().translate(self.__radius * hOffset, 0)

        self.__defaultPen = QtGui.QPen(QtGui.QColor("#000000"), 1.0)
        self.__hoverPen = QtGui.QPen(QtGui.QColor("#000000"), 1.5)

        self._ellipseItem = QtWidgets.QGraphicsEllipseItem(self)
        self._ellipseItem.setPen(self.__defaultPen)
        self._ellipseItem.setPos(size.width() / 2, size.height() / 2)
        self._ellipseItem.setRect(
            -self.__radius,
            -self.__radius,
            self.__diameter,
            self.__diameter,
        )

        self.setColor(color)
        self.setAcceptHoverEvents(True)
Пример #6
0
    def setupScene(self):
        self.scene = QtWidgets.QGraphicsScene()
        self.viewwidget.setScene(self.scene)

        self.cursor = QtWidgets.QGraphicsItemGroup()
        self.cursor.setZValue(100)
        circle = QtWidgets.QGraphicsEllipseItem(self.cursor)
        circle.setRect(-5, -5, 10, 10)
        circle.setBrush(QtGui.QBrush(QtCore.Qt.red))
        circle.setFlag(QtWidgets.QGraphicsItem.ItemIgnoresTransformations,
                       True)
        self.scene.addItem(self.cursor)

        def onMouseMoveEvent(event):
            position = QtCore.QPointF(event.scenePos())
            self.xwidget.setText(str(position.x()))
            self.ywidget.setText(str(position.y()))
            origin = relative_position_default_origin
            self.latwidget.setText(
                str(round(origin[0] + position.y() / (6371000 * deg), 6)))
            self.lonwidget.setText(
                str(
                    round(
                        origin[1] + position.x() /
                        math.cos(deg * origin[0] + position.y() / 6371000) /
                        (6371000 * deg), 6)))
            QtWidgets.QGraphicsScene.mouseMoveEvent(
                self.scene, event)  # propagate to objects in scene

        self.scene.mouseMoveEvent = onMouseMoveEvent
Пример #7
0
    def process_circle(self):
        x = np.array([
            self._mouse_pos[0, 0], self._mouse_pos[1, 0],
            self._mouse_pos[2, 0], self._mouse_pos[3, 0]
        ])
        y = np.array([
            self._mouse_pos[0, 1], self._mouse_pos[1, 1],
            self._mouse_pos[2, 1], self._mouse_pos[3, 1]
        ])
        circle = find_circle_from_points(x, y)
        self._circle = [int(circle[0]), int(circle[1]), int(circle[2])]

        Ellipse = QtWidgets.QGraphicsEllipseItem(0, 0, self._circle[2] * 2,
                                                 self._circle[2] * 2)
        #ellipse will be green
        pen = QtGui.QPen(QtCore.Qt.green)
        Ellipse.setPen(pen)
        #if I want to fill the ellipse i should do this:
        #brush = QtGui.QBrush(QtCore.Qt.green)
        #Ellipse.setPen(brush)

        #this is the position of the top-left corner of the ellipse.......
        Ellipse.setPos(circle[0] - self._circle[2],
                       circle[1] - self._circle[2])
        Ellipse.setTransform(QtGui.QTransform())
        self._scene.addItem(Ellipse)
Пример #8
0
 def drawEllipse(self, x, y, w, h):
     ellipse = QtWidgets.QGraphicsEllipseItem(x, y, w - 1, h - 1)
     transform = QtGui.QTransform()
     transform.translate(-(w - 1) / 2, -(h - 1) / 2)
     ellipse.setTransform(transform)
     ellipse.setBrush(QtCore.Qt.black)
     self.addItem(ellipse)
Пример #9
0
    def piechart(self, pben, plben, ppat, plpat, punc, poth):
        # cria elemento de cena para o gráfico de pizza
        cena = QtWidgets.QGraphicsScene()

        # define vetor com os valores das porcentagens
        # 'Benígno', 'Provavelmente benígno', 'Patogênico', 'Provavelmente patogênico', 'Incerto'
        valores = [pben, plben, ppat, plpat, punc, poth]
        total = sum(valores)

        # define as cores (verde, verde leve, vermelho, vermelho leve, cinza)
        cores = list(
            map(QColor, [
                '#33cc33', '#70db70', '#ff3300', '#ff704d', '#669999',
                '#8c8c8c'
            ]))

        # parâmetros para definir a elipse
        angulo_i = 0
        contador = 0

        # desenha cada fatia da elipse
        for v in valores:
            # Max span is 5760, so we have to calculate corresponding span angle
            angulo = round(float(v * 5760) / total)
            elipse = QtWidgets.QGraphicsEllipseItem(0, 0, 200, 200)
            elipse.setPos(0, 0)
            elipse.setStartAngle(angulo_i)
            elipse.setSpanAngle(angulo)
            elipse.setBrush(cores[contador])
            angulo_i += angulo
            contador += 1
            cena.addItem(elipse)
        return cena
Пример #10
0
 def initLayout(self):
     self.boxCornerItems = []
     for i in range(8):
         corner = QtWidgets.QGraphicsEllipseItem()
         corner.setRect(-4, -4, 8, 8)
         corner.setZValue(2.0)
         pen = corner.pen()
         pen.setWidth(1)
         if i < 4:
             pen.setColor(QtGui.QColor(0, 0, 255))
             corner.setPen(pen)
             corner.setBrush(QtGui.QBrush(QtGui.QColor(0, 0, 255)))
         else:
             pen.setColor(QtGui.QColor(0, 255, 0))
             corner.setPen(pen)
             corner.setBrush(QtGui.QBrush(QtGui.QColor(0, 255, 0)))
         self.graphicsScene.addItem(corner)
         self.boxCornerItems.append(corner)
     self.boxLineItems = []
     for i in range(12):
         line = QtWidgets.QGraphicsLineItem()
         pen = line.pen()
         pen.setWidth(3)
         if i < 4:
             pen.setColor(QtGui.QColor(0, 0, 255))
         elif i < 8:
             pen.setColor(QtGui.QColor(0, 255, 0))
         else:
             pen.setColor(QtGui.QColor(255, 0, 0))
         line.setPen(pen)
         line.setZValue(2.0 - float(i) / 12.0)
         self.graphicsScene.addItem(line)
         self.boxLineItems.append(line)
     self.updateLayout()
Пример #11
0
    def mouseMoveEvent(self, event):
        # print("Scene.mouseMoveEvent()")
        self.end = event.scenePos()
        width = self.end.x() - self.begin.x()
        height = self.end.y() - self.begin.y()

        if self.item and self.tool == "move":

            self.item.setPos(event.scenePos() - self.offset)

        if self.tool == 'rectangle':
            self.removeItem(self.rect)
            self.rect = QtWidgets.QGraphicsRectItem(self.begin.x(),
                                                    self.begin.y(), width,
                                                    height)
            self.rect.setPen(self.pen)
            self.rect.setBrush(self.brush)
            self.addItem(self.rect)

        elif self.tool == 'ellipse':
            self.removeItem(self.ellipse)
            self.ellipse = QtWidgets.QGraphicsEllipseItem(
                self.begin.x(), self.begin.y(), width, height)
            self.ellipse.setPen(self.pen)
            self.ellipse.setBrush(self.brush)
            self.addItem(self.ellipse)

        elif self.tool == 'line':
            self.removeItem(self.line)
            self.line = QtWidgets.QGraphicsLineItem(self.begin.x(),
                                                    self.begin.y(),
                                                    self.end.x(), self.end.y())
            self.line.setPen(self.pen)
            self.addItem(self.line)
Пример #12
0
    def plot(self):
        """ create grafiks group item with all grafik pyqt elements of the player """
        self.item_group = QtWidgets.QGraphicsItemGroup()
        #for i in range(1,len(self._line_list)):
        #    # -> mulitplay pos with line with -> move to upper field corner
        #    p1 = self._line_list[i-1]
        #    p2 = self._line_list[i]
            
        #    l = QtWidgets.QGraphicsLineItem()
        #    l.setLine(p1.x()*self.magnification,p1.y()*self.magnification,p2.x()*self.magnification,p2.y()*self.magnification)
        #    l.setPen(self.pen)
        #    self.item_group.addToGroup(l)
        for l in self._line_list:
            ql = l.get_q_line_item()
            ql.setPen(self.pen)
            self.item_group.addToGroup(ql)

        for i in range(0,len(self._point_list)):
            # -> mulitplay pos with line with -> move to upper field corner
            p = self._point_list[i]
            
            l = QtWidgets.QGraphicsEllipseItem()
            l.setRect((p.x()-0.5)*self.magnification,(p.y()-0.5)*self.magnification,self.magnification,self.magnification)
            #l.setLine(p1.x()*self.magnification,p1.y()*self.magnification,p2.x()*self.magnification,p2.y()*self.magnification)
            #l.setPen(self.pen)
            l.setBrush(QtGui.QColor(255,0,0))
            self.item_group.addToGroup(l)

        return self.item_group
Пример #13
0
 def build_sector_of_scanning(self):
     self.scanning_shape = QtWidgets.QGraphicsEllipseItem(
         -self.lidar_maximum_distance, -self.lidar_maximum_distance,
         2 * self.lidar_maximum_distance, 2 * self.lidar_maximum_distance,
         self.carrier_item)
     self.scanning_shape.setStartAngle(-self.lidars_half_angle * 16)
     self.scanning_shape.setSpanAngle(2 * self.lidars_half_angle * 16)
Пример #14
0
    def _InitUI(self):
        self.setFiltersChildEvents(False)
        oFrom = QtWidgets.QGraphicsEllipseItem()
        oTo = QtWidgets.QGraphicsRectItem()
        oLine = QtWidgets.QGraphicsLineItem()

        self.setFlags(QGraphicsItem.ItemIsSelectable | QGraphicsItem.ItemIsMovable)
        pen = oFrom.pen()
        pen.setWidth(2)
        pen.setColor(QColor(0, 160, 230))
        oFrom.setPen(pen)
        oTo.setPen(pen)
        oLine.setPen(pen)

        oFrom.setBrush(QColor(247, 160, 57))
        oTo.setBrush(QColor(247, 160, 57))

        self.addToGroup(oFrom)
        self.addToGroup(oTo)
        self.addToGroup(oLine)

        length = 50
        oFrom.setRect(QRectF(-length/2, -length/2, length, length))
        oTo.setRect(QRectF(-length/2, -length/2, length, length))

        oFrom.setPos(80, 80)
        oTo.setPos(200, 150)
        oLine.setLine(QLineF(oFrom.pos(), oTo.pos()))
Пример #15
0
    def __init__(self, id: str = None, other: CanvasVertex = None):

        if other:
            self._copy_constructor(other)
        else:
            self.id = id
            QtWidgets.QGraphicsItem.__init__(self)

        self.placed = False

        self.vertex_width = 10.
        self.vertex_height = 10.
        self.vertex_text_gap = 3.

        self.vertex_ellipse_rect = QtCore.QRectF(-self.vertex_width / 2.,
                                                 -self.vertex_height / 2,
                                                 self.vertex_width,
                                                 self.vertex_height)
        self.ellipse_default_brush = QtGui.QBrush(QtCore.Qt.black)
        self.ellipse_selected_brush = QtGui.QBrush(QtCore.Qt.red)
        self.ellipse = QtWidgets.QGraphicsEllipseItem(self.vertex_ellipse_rect,
                                                      self)
        self.ellipse.setBrush(self.ellipse_default_brush)

        self.text = QtWidgets.QGraphicsTextItem(self.getId(), self)
        # self.text.setTextInteractionFlags(QtCore.Qt.TextEditable)
        # self.text.document().contentsChanged.connect(self.changeIdFromText)
        self.positionText()
Пример #16
0
    def draw_origin(self):
        pen = qg.QPen(qg.QColor('#e533e5'), 2)
        pen.setCosmetic(True)  # changes width depending on zoom
        pen.setJoinStyle(qc.Qt.RoundJoin)

        length = self.scene.itemsBoundingRect().width() / 16
        diameter = length / 10

        origin_item = qw.QGraphicsItemGroup()

        circle = qw.QGraphicsEllipseItem(
            qc.QRectF(-diameter / 2, -diameter / 2, diameter, diameter))
        circle.setPen(pen)
        circle.setEnabled(False)
        origin_item.addToGroup(circle)

        x_line = qw.QGraphicsLineItem(
            0,
            0,
            length,
            0,
        )
        x_line.setPen(pen)
        origin_item.addToGroup(x_line)

        y_line = qw.QGraphicsLineItem(0, 0, 0, length)
        y_line.setPen(pen)
        origin_item.addToGroup(y_line)

        origin_item.setEnabled(False)
        origin_item.setZValue(-1)
        self.scene_origin = origin_item
        self.scene.addItem(self.scene_origin)
 def add_center(self, stain):
     center = QtWidgets.QGraphicsEllipseItem(stain.position[0],
                                             stain.position[1], 1, 1)
     pen = QtGui.QPen(QtCore.Qt.white)
     pen.setWidth(3)
     center.setPen(pen)
     return center
 def draw(self, p): 
     it = QtWidgets.QGraphicsEllipseItem(0, 0, 10, 10)
     it.setPen(QtGui.QPen(QtCore.Qt.blue, 3, QtCore.Qt.SolidLine))
     it.setBrush(QBrush(Qt.blue, Qt.SolidPattern))
     self.scene.addItem(it)
     it.setPos(p)
     self.items.append(it)
     self.item_dict[it] = [p.__pos__().x(), p.__pos__().y()]
Пример #19
0
 def draw_point_coord(self, x, y, width, color):
     coor_point = QtCore.QRectF(x - width / 2, y - width / 2, width, width)
     ellipse = QtWidgets.QGraphicsEllipseItem(coor_point)
     ellipse.setBrush(QtGui.QBrush(color))
     setHighlight(ellipse, self)
     self.scene.addItem(ellipse)
     ellipse.setZValue(1)
     return ellipse
Пример #20
0
 def __init__(self, radius, model, color=QtGui.QColor("black")):
     super().__init__()
     self.radius = radius
     self.item = QtWidgets.QGraphicsEllipseItem(
         QtCore.QRectF(-1 * radius, -1 * radius, 2 * radius, 2 * radius))
     self.item.setBrush(color)
     self.model = model
     self._set_pos(QtCore.QPointF(model.x, model.y))
Пример #21
0
 def drawACircle(self, centerX, centerY, Radius, brush=None, pen=None):
     ellipse = qtw.QGraphicsEllipseItem(centerX - Radius, centerY - Radius,
                                        2 * Radius, 2 * Radius)
     if pen is not None:
         ellipse.setPen(pen)
     if brush is not None:
         ellipse.setBrush(brush)
     self.scene.addItem(ellipse)
Пример #22
0
 def draw_dots(self, dot_list):
     """Draws the dots at the given positions"""
     for dot in dot_list:
         self.scene.addItem(
             QtWidgets.QGraphicsEllipseItem(
                 dot.pos_x-self.dot_size/2,
                 -dot.pos_y-self.dot_size/2,
                 self.dot_size,
                 self.dot_size))
Пример #23
0
    def loadStatistic(self, flag):
        self.text = []
        self.nbr = []
        self.scene = []
        repeated = get().repeatedVisitors(
            self.dateEditFrom.date().toString('yyyy-MM-dd'),
            self.dateEditTo.date().toString('yyyy-MM-dd'))
        dwell = get().dwellTime(
            self.dateEditFrom.date().toString('yyyy-MM-dd'),
            self.dateEditTo.date().toString('yyyy-MM-dd'))
        if flag:
            self.correlation = get().correlation()
            self.forecasting = get().forecasting()
        data = [[self.AnalyticsGraphics, repeated],
                [self.PresenceGraphics, dwell],
                [self.CorrelationGraphics, self.correlation],
                [self.ForecastingGraphics, self.forecasting]]
        colours = []
        palette = [
            0x24A14D, 0xEB9E3E, 0xCE3B3E, 0x3576BE, 0x389FD3, 0x9548A9,
            0x008080
        ]
        for i in palette:
            colours.append(QtGui.QColor(i))

        for item in data:
            start_angle = 0
            count = 0
            total = sum([item[1][x] for x in item[1]])
            y = 10
            self.scene.append(QtWidgets.QGraphicsScene())
            self.scene[-1].setSceneRect(0, 0, 470, 300)
            for elem in item[1]:
                angle = round(float(item[1][elem] * 5760) / total)
                ellipse = QtWidgets.QGraphicsEllipseItem(0, 0, 300, 300)
                ellipse.setPos(0, 0)
                ellipse.setStartAngle(start_angle)
                ellipse.setSpanAngle(angle)
                ellipse.setPen(QtGui.QColor(0xffffff))
                ellipse.setBrush(colours[count])
                start_angle += angle
                self.scene[-1].addRect(
                    350, y, 40, 15, QtGui.QPen(QtGui.QColor(0xFFFFFF)),
                    QtGui.QBrush(QtGui.QColor(palette[count])))
                self.text.append(QtWidgets.QGraphicsTextItem())
                self.nbr.append(QtWidgets.QGraphicsTextItem())
                self.text[-1].setPos(347, y + 15)
                self.text[-1].setPlainText(elem)
                self.nbr[-1].setPos(390, y - 3)
                self.nbr[-1].setPlainText(str(item[1][elem]))
                count += 1
                y += 40
                self.scene[-1].addItem(self.text[-1])
                self.scene[-1].addItem(self.nbr[-1])
                self.scene[-1].addItem(ellipse)

            item[0].setScene(self.scene[-1])
Пример #24
0
    def draw_pendulum(self, double_pendulum):
        self.length1 = double_pendulum.pendulum1.length * 100
        self.length2 = double_pendulum.pendulum2.length * 100
        self.rect_width = 5
        self.diameter = 20

        self.outline = QtGui.QPen(QtCore.Qt.transparent)
        self.brush1 = QtGui.QBrush(QtCore.Qt.green)
        self.brush2 = QtGui.QBrush(QtCore.Qt.blue)

        self.rect1 = QtWidgets.QGraphicsRectItem(-self.rect_width / 2, 0,
                                                 self.rect_width, self.length1)
        self.rect1.setPen(self.outline)
        self.rect1.setBrush(self.brush1)
        self.rect1.setTransformOriginPoint(0, 0)

        self.circle1 = QtWidgets.QGraphicsEllipseItem(
            -self.diameter / 2, self.length1 - self.diameter / 2,
            self.diameter, self.diameter, self.rect1)
        self.circle1.setPen(self.outline)
        self.circle1.setBrush(self.brush1)

        self.rect2 = QtWidgets.QGraphicsRectItem(-self.rect_width / 2,
                                                 self.length1, self.rect_width,
                                                 self.length2, self.rect1)
        self.rect2.setPen(self.outline)
        self.rect2.setBrush(self.brush2)
        self.rect2.setTransformOriginPoint(0, self.length1)
        self.rect2.setFlag(QtWidgets.QGraphicsItem.ItemStacksBehindParent,
                           True)

        self.circle2 = QtWidgets.QGraphicsEllipseItem(
            -self.diameter / 2,
            self.length1 + self.length2 - self.diameter / 2, self.diameter,
            self.diameter, self.rect2)
        self.circle2.setPen(self.outline)
        self.circle2.setBrush(self.brush2)

        self.rect1.setRotation(math.degrees(double_pendulum.pendulum1.theta))
        self.rect2.setRotation(
            math.degrees(double_pendulum.pendulum2.theta -
                         double_pendulum.pendulum1.theta))

        self.scene.addItem(self.rect1)
Пример #25
0
def scene_with_undo_redo():
    scene = Scene(0, 0, 512, 512)
    undo_redo = UndoRedo(scene)

    item_1 = QtWidgets.QGraphicsEllipseItem(0, 0, 100, 100)
    item_2 = QtWidgets.QGraphicsLineItem(15, 20, 45, 120)
    undo_redo.insert_in_undo_redo_add(item_1)
    undo_redo.insert_in_undo_redo_add(item_2)

    return ((item_1, item_2), scene, undo_redo)
Пример #26
0
    def on_item_added(self, guid):
        view1 = self.main_window.view1
        model = self.main_window.model

        print("item guid={0} added".format(guid))
        item = model.items[guid]
        x, y = item["pos"]
        graphics_item = QtWidgets.QGraphicsEllipseItem(x, y, 60, 40)
        item["graphics_item"] = graphics_item
        view1.scene.addItem(graphics_item)
Пример #27
0
 def __init__(self, parent, real_pos):
     super().__init__(parent)
     self.setEnabled(True)
     self.setActive(True)
     circle = QtWidgets.QGraphicsEllipseItem(self)
     circle.setRect(-5, -5, 10, 10)
     circle.setBrush(QtGui.QBrush(QtCore.Qt.yellow))
     circle.setFlag(QtWidgets.QGraphicsItem.ItemIgnoresTransformations,
                    True)
     self.real_pos = real_pos
Пример #28
0
    def __init__(self, points):
        super(Barlicity, self).__init__()

        # set up the scene
        scene = QtWidgets.QGraphicsScene(self)
        view = QtWidgets.QGraphicsView(scene)
        self.setCentralWidget(view)
        self.resize(
            Qt.QSize(
                QtWidgets.QDesktopWidget().availableGeometry(
                    self).size().height() * 0.8,
                QtWidgets.QDesktopWidget().availableGeometry(
                    self).size().height() * 0.8))
        view.setSceneRect(QtCore.QRectF(0, 0, 1000, 1000))

        # create and position the scanner circle
        self.circle = QtWidgets.QGraphicsEllipseItem(
            QtCore.QRectF(-50, -50, 100, 100))
        self.circle.setOpacity(0.6)
        self.circle.setBrush(Qt.QColor(0, 100, 255))
        # these two variables are set from the scamp threads, and then they are read during the "do_frame" method (which
        # operates in Qt land) and used to actually position the circle. GUI actions can only be on the main QT thread.
        self.circle_center = (500, 500)
        self.circle_width = scale_factor * (
            WIDTH_AVERAGE + WIDTH_VARIATION * math.sin(WIDTH_START_PHASE))
        # Having defined them, since we're on the Qt thread right now, we position the circle
        self.circle.setPos(*self.circle_center)
        self.circle.setRect(-self.circle_width / 2, -self.circle_width / 2,
                            self.circle_width, self.circle_width)
        scene.addItem(self.circle)

        # the scanner moves around between the different points; this keeps track of where it is
        self.scanner_index = 0

        # create all of the points
        self.points_graphics = []
        for i, point in enumerate(points):
            self.points_graphics.append(
                scene.addEllipse(Qt.QRectF(point[0] - 5, point[1] - 5, 10, 10),
                                 brush=Qt.QColor(0, 0, 0)))
            text = scene.addText(str(i))
            text.setPos(point[0] - 25, point[1])

        self.contained_points = []
        # this checks which points are currently in the scanner and puts their indices in self.contained_points
        self.check_contained_points()

        # set up the Qt repaint to happen every 10 milliseconds by calling self.do_frame
        self.repaint_timer = QtCore.QTimer(self)
        self.repaint_timer.timeout.connect(self.do_frame)
        self.repaint_timer.start(10)
        self.repaint()

        # These scamp objects are defined when the window is shown
        self.session = self.piano = self.harpsichord = None
Пример #29
0
 def __init__(self, x1, x2, y1, y2, lineThickness, grFaktor, parent=None):
     QtWidgets.QGraphicsItemGroup.__init__(self)
     self.parent = parent
     correction = 0.85
     rx = (x1 - x2)
     ry = (y1 - y2)
     nx = rx / max(sqrt(rx**2 + ry**2), 0.1)
     ny = ry / max(sqrt(rx**2 + ry**2), 0.1)
     mx1 = (
         x1 + x2
     ) * 0.5 - ny * grFaktor * correction - 0.5 * nx * grFaktor * correction
     my1 = (
         y1 + y2
     ) * 0.5 + nx * grFaktor * correction - 0.5 * ny * grFaktor * correction
     mx2 = (
         x1 + x2
     ) * 0.5 + ny * grFaktor * correction - 0.5 * nx * grFaktor * correction
     my2 = (
         y1 + y2
     ) * 0.5 - nx * grFaktor * correction - 0.5 * ny * grFaktor * correction
     mx3 = (
         x1 + x2
     ) * 0.5 + ny * grFaktor * correction + 0.5 * nx * grFaktor * correction
     my3 = (
         y1 + y2
     ) * 0.5 - nx * grFaktor * correction + 0.5 * ny * grFaktor * correction
     mx4 = (
         x1 + x2
     ) * 0.5 - ny * grFaktor * correction + 0.5 * nx * grFaktor * correction
     my4 = (
         y1 + y2
     ) * 0.5 + nx * grFaktor * correction + 0.5 * ny * grFaktor * correction
     circle = QtWidgets.QGraphicsEllipseItem((x1 + x2) * 0.5 - grFaktor,
                                             (y1 + y2) * 0.5 - grFaktor,
                                             2.0 * grFaktor,
                                             2.0 * grFaktor,
                                             parent=parent)
     circle.setPen(
         QtGui.QPen(QtGui.QColor(255, 0, 0, 255), lineThickness,
                    QtCore.Qt.SolidLine))
     circle.setBrush(
         QtGui.QBrush(QtGui.QColor(255, 255, 255, 255),
                      QtCore.Qt.SolidPattern))
     line1 = QtWidgets.QGraphicsLineItem(mx1, my1, mx3, my3)
     line1.setPen(
         QtGui.QPen(QtGui.QColor(255, 0, 0, 255), lineThickness,
                    QtCore.Qt.SolidLine))
     line2 = QtWidgets.QGraphicsLineItem(mx2, my2, mx4, my4)
     line2.setPen(
         QtGui.QPen(QtGui.QColor(255, 0, 0, 255), lineThickness,
                    QtCore.Qt.SolidLine))
     self.addToGroup(circle)
     self.addToGroup(line1)
     self.addToGroup(line2)
Пример #30
0
 def faireRond(self, x, y, r, coul, op):
     rond = QtWidgets.QGraphicsEllipseItem(x, y, r, r)
     rond.setFlag(QtWidgets.QGraphicsItem.ItemIsMovable)
     rond.setOpacity(op)
     rond.setBrush(QtGui.QBrush(coul))
     rond.setPen(QtGui.QPen(QtCore.Qt.SolidLine))
     rond.setZValue(self.id + 1)
     rond.setScale(2)
     self.scene.addItem(rond)
     self.id += 1
     #print(rond.zValue())
     return rond