Exemplo n.º 1
0
    def paintEvent(self, event: QPaintEvent):
        p = QPainter(self)
        p.setBrush(QtCore.Qt.blue)

        taille = min(self.width(), self.height())

        p.drawRect(10, 10, taille - 20, taille - 20)
        p.setBrush(QtCore.Qt.yellow)
        p.drawEllipse(20, 20, taille - 40, taille - 40)

        p.save()

        p.translate(taille / 2, taille / 2)
        p.rotate(135 + (self.valeur * 270 / 100))

        pen = QPen(QtCore.Qt.black, 10)
        p.setPen(pen)
        p.drawLine(0, 0, (taille - 40) / 3, 0)

        p.restore()

        pen = QPen(QtCore.Qt.black, 5)
        p.setPen(pen)
        p.setBrush(QtCore.Qt.red)
        p.drawEllipse((taille / 2) - 20, (taille / 2) - 20, 40, 40)
    def drawBg_ZFB(self, painter: QPainter) -> None:
        painter.save()

        # 圆半径为高度一定比例,计算宽度,将宽度等分
        width: int = self.width() // self.__maxStep
        height: int = self.height() // 3
        radius: int = height // 3
        initX: int = width // 2
        initY: int = self.height() // 2

        # 逐个绘制连接线条
        pen: QPen = QPen()
        pen.setWidthF(radius // 4)
        pen.setCapStyle(Qt.RoundCap)
        pen.setColor(self.__background)
        painter.setPen(pen)
        painter.setBrush(Qt.NoBrush)

        for i in range(self.__maxStep - 1):
            painter.drawLine(QPoint(initX, initY),
                             QPoint(initX + width, initY))
            initX += width

        # 逐个绘制圆
        initX: int = width // 2
        painter.setPen(Qt.NoPen)
        painter.setBrush(self.__background)

        for i in range(self.__maxStep):
            painter.drawEllipse(QPoint(initX, initY), radius, radius)
            initX += width

        painter.restore()
Exemplo n.º 3
0
    def drawPointerIndicatorR(self, painter: QPainter) -> None:
        if not self.__showPointer: return

        radius: int = self.__radiusCircle - 15
        painter.save()

        pen: QPen = QPen()
        pen.setWidth(1)
        pen.setColor(self.__progressColor)
        painter.setPen(pen)
        painter.setBrush(self.__progressColor)

        pts: QPolygon = QPolygon()
        pts.append(QPoint(-8, 0))
        pts.append(QPoint(8, 0))
        pts.append(QPoint(0, radius))

        painter.rotate(self.__startAngle)
        degRotate: float = (360.0 - self.__startAngle - self.__endAngle) / (
            self.__maxValue - self.__minValue) * (self.__value -
                                                  self.__minValue)
        painter.rotate(degRotate)
        painter.drawConvexPolygon(pts)

        # 增加绘制圆角直线,与之前三角形重叠,形成圆角指针
        pen.setCapStyle(Qt.RoundCap)
        pen.setWidthF(4)
        painter.setPen(pen)
        painter.drawLine(0, 0, 0, radius)

        # 绘制中心圆点
        radius = radius // 4
        painter.drawEllipse(-radius, -radius, radius * 2, radius * 2)

        painter.restore()
Exemplo n.º 4
0
    def drawRectShape(self, event):
        '''
        Draws a rectangle for the textEdit box
        '''
        textBoxRect = self.rect()
        outerCircleRect = self.rect()
        textBoxRect.adjust(+30, +30, -12, -12)
        outerCircleRect.adjust(+8, +8, -8, -15)

        moveRect = QRect(0, 0, 11, 11)

        shapePainter = QPainter(self)
        shapePainter.setRenderHint(shapePainter.Antialiasing)
        # shapePainter.setPen(QPen(QColor(14,125,145),  5, Qt.SolidLine))
        # shapePainter.drawRect(textBoxRect)

        shapePainter.setPen(QPen(QColor(14, 125, 145), 5, Qt.SolidLine))
        shapePainter.drawLine(outerCircleRect.topLeft(),
                              outerCircleRect.bottomLeft())

        # shapePainter.setPen(QPen(QColor(14,125,145),  2, Qt.SolidLine))
        # arcRect = QRect(outerCircleRect.bottomLeft().x() - 6, outerCircleRect.bottomLeft().y()+1, 12, 12)
        # shapePainter.drawArc(arcRect, 0, CIRCLE)

        self.pTextEdit.setEnabled(True)
        self.pTextEdit.setVisible(True)

        self.pTextEdit.ensureCursorVisible()
        self.pTextEdit.setFocus()
Exemplo n.º 5
0
 def paintEvent(self, event):
     # startTime = datetime.datetime.now()
     if self.mouseIsDown:
         painter = QPainter(self.viewport())
         # painter.drawEllipse(self.center,10,10)
         painter.drawLine(self.center, self.startCenter)
     QTableView.paintEvent(self, event)
Exemplo n.º 6
0
    def paintEvent(self, arg__1: QPaintEvent):
        # super(Push, self).paintEvent(arg__1)
        # lightgrey
        painter = QPainter()
        painter.begin(self)
        pen = QPen(QColor(162, 181, 205), 2, Qt.SolidLine)
        painter.setBrush(QBrush(QColor(255, 255, 255)))
        painter.setPen(pen)
        painter.setRenderHint(QPainter.Antialiasing, True)
        rect = QRect()
        rect.moveTo(1, 10)
        rect.setWidth(140)
        rect.setHeight(140)
        painter.drawRoundedRect(rect, 5, 5)
        painter.drawConvexPolygon(
            [QPoint(60, 10), QPoint(80, 10),
             QPoint(70, 1)])

        pen.setColor(QColor(255, 255, 255))
        painter.setPen(pen)
        painter.drawLine(63, 10, 77, 10)
        pen.setWidth(1)
        painter.setPen(pen)
        painter.drawPoints([QPoint(61, 10), QPoint(78, 10)])
        painter.end()
Exemplo n.º 7
0
    def paintEvent(self, event):
        rect = QRect(10, 20, 80, 60)

        path = QPainterPath()
        path.moveTo(20, 80)
        path.lineTo(20, 30)
        path.cubicTo(80, 0, 50, 50, 80, 80)

        startAngle = 30 * 16
        arcLength = 120 * 16

        painter = QPainter(self)
        painter.setPen(self.pen)
        painter.setBrush(self.brush)
        if self.antialiased:
            painter.setRenderHint(QPainter.Antialiasing)

        for x in range(0, self.width(), 100):
            for y in range(0, self.height(), 100):
                painter.save()
                painter.translate(x, y)
                if self.transformed:
                    painter.translate(50, 50)
                    painter.rotate(60.0)
                    painter.scale(0.6, 0.9)
                    painter.translate(-50, -50)

                if self.shape == RenderArea.Line:
                    painter.drawLine(rect.bottomLeft(), rect.topRight())
                elif self.shape == RenderArea.Points:
                    painter.drawPoints(RenderArea.points)
                elif self.shape == RenderArea.Polyline:
                    painter.drawPolyline(RenderArea.points)
                elif self.shape == RenderArea.Polygon:
                    painter.drawPolygon(RenderArea.points)
                elif self.shape == RenderArea.Rect:
                    painter.drawRect(rect)
                elif self.shape == RenderArea.RoundedRect:
                    painter.drawRoundedRect(rect, 25, 25, Qt.RelativeSize)
                elif self.shape == RenderArea.Ellipse:
                    painter.drawEllipse(rect)
                elif self.shape == RenderArea.Arc:
                    painter.drawArc(rect, startAngle, arcLength)
                elif self.shape == RenderArea.Chord:
                    painter.drawChord(rect, startAngle, arcLength)
                elif self.shape == RenderArea.Pie:
                    painter.drawPie(rect, startAngle, arcLength)
                elif self.shape == RenderArea.Path:
                    painter.drawPath(path)
                elif self.shape == RenderArea.Text:
                    painter.drawText(rect, Qt.AlignCenter,
                                     "PySide 2\nQt %s" % qVersion())
                elif self.shape == RenderArea.Pixmap:
                    painter.drawPixmap(10, 10, self.pixmap)

                painter.restore()

        painter.setPen(self.palette().dark().color())
        painter.setBrush(Qt.NoBrush)
        painter.drawRect(QRect(0, 0, self.width() - 1, self.height() - 1))
Exemplo n.º 8
0
    def paintEvent(self, event):
        rect = QRect(10, 20, 80, 60)

        path = QPainterPath()
        path.moveTo(20, 80)
        path.lineTo(20, 30)
        path.cubicTo(80, 0, 50, 50, 80, 80)

        startAngle = 30 * 16
        arcLength = 120 * 16

        painter = QPainter(self)
        painter.setPen(self.pen)
        painter.setBrush(self.brush)
        if self.antialiased:
            painter.setRenderHint(QPainter.Antialiasing)

        for x in range(0, self.width(), 100):
            for y in range(0, self.height(), 100):
                painter.save()
                painter.translate(x, y)
                if self.transformed:
                    painter.translate(50, 50)
                    painter.rotate(60.0)
                    painter.scale(0.6, 0.9)
                    painter.translate(-50, -50)

                if self.shape == RenderArea.Line:
                    painter.drawLine(rect.bottomLeft(), rect.topRight())
                elif self.shape == RenderArea.Points:
                    painter.drawPoints(RenderArea.points)
                elif self.shape == RenderArea.Polyline:
                    painter.drawPolyline(RenderArea.points)
                elif self.shape == RenderArea.Polygon:
                    painter.drawPolygon(RenderArea.points)
                elif self.shape == RenderArea.Rect:
                    painter.drawRect(rect)
                elif self.shape == RenderArea.RoundedRect:
                    painter.drawRoundedRect(rect, 25, 25, Qt.RelativeSize)
                elif self.shape == RenderArea.Ellipse:
                    painter.drawEllipse(rect)
                elif self.shape == RenderArea.Arc:
                    painter.drawArc(rect, startAngle, arcLength)
                elif self.shape == RenderArea.Chord:
                    painter.drawChord(rect, startAngle, arcLength)
                elif self.shape == RenderArea.Pie:
                    painter.drawPie(rect, startAngle, arcLength)
                elif self.shape == RenderArea.Path:
                    painter.drawPath(path)
                elif self.shape == RenderArea.Text:
                    painter.drawText(rect, Qt.AlignCenter,
                                     "PySide 2\nQt %s" % qVersion())
                elif self.shape == RenderArea.Pixmap:
                    painter.drawPixmap(10, 10, self.pixmap)

                painter.restore()

        painter.setPen(self.palette().dark().color())
        painter.setBrush(Qt.NoBrush)
        painter.drawRect(QRect(0, 0, self.width() - 1, self.height() - 1))
Exemplo n.º 9
0
    def paintEvent(self, event):
        super(BubbleLabel, self).paintEvent(event)
        painter = QPainter(self)
        painter.setRenderHint(QPainter.Antialiasing)  # 抗锯齿

        rectPath = QPainterPath()  # 圆角矩形
        triPath = QPainterPath()  # 底部三角形

        height = self.height() - 8  # 往上偏移8
        rectPath.addRoundedRect(QRectF(0, 0, self.width(), height), 5, 5)
        x = self.width() / 5 * 4
        triPath.moveTo(x, height)  # 移动到底部横线4/5处
        # 画三角形
        triPath.lineTo(x + 6, height + 8)
        triPath.lineTo(x + 12, height)

        rectPath.addPath(triPath)  # 添加三角形到之前的矩形上

        # 边框画笔
        painter.setPen(QPen(self.BorderColor, 1, Qt.SolidLine,
                            Qt.RoundCap, Qt.RoundJoin))
        # 背景画刷
        painter.setBrush(self.BackgroundColor)
        # 绘制形状
        painter.drawPath(rectPath)
        # 三角形底边绘制一条线保证颜色与背景一样
        painter.setPen(QPen(self.BackgroundColor, 1,
                            Qt.SolidLine, Qt.RoundCap, Qt.RoundJoin))
        painter.drawLine(x, height, x + 12, height)
    def update(self, new_vals):
        self.values = new_vals

        painter = QPainter(self.label.pixmap())
        painter.setRenderHint(QPainter.Antialiasing)

        painter.setPen(QPen('#333333'))
        painter.setBrush(QColor('#333333'))
        painter.drawRect(self.label.rect())

        pen = QPen(QColor(255, 255, 255))
        pen.setWidth(1)
        painter.setPen(pen)
        painter.setBrush(QBrush(Qt.white))

        x_old = -1
        y_old = -1

        for i in range(len(self.values)):
            v = self.values[i]
            x = i * (self.label.width() / len(self.values))
            y = self.label.height() - self.label.height() * v

            if self.connect_lines_check_box.isChecked() and i > 0:
                painter.drawLine(x_old, y_old, x, y)
            else:

                painter.drawEllipse(x - 1, y - 1, 2, 2)

            x_old = x
            y_old = y

        self.repaint()
 def paintEvent(self, event):
     side = min(self.width(), self.height())
     time = QTime.currentTime()
     painter = QPainter(self)
     painter.setRenderHint(QPainter.Antialiasing)
     painter.translate(self.width() / 2, self.height() / 2)
     painter.scale(side / 200.0, side / 200.0)
     painter.setPen(Qt.NoPen)
     painter.setBrush(AnalogClock.hourColor)
     painter.save()
     painter.rotate(30.0 * ((time.hour() + time.minute() / 60.0)))
     painter.drawConvexPolygon(AnalogClock.hourHand)
     painter.restore()
     painter.setPen(AnalogClock.hourColor)
     for i in range(12):
         painter.drawLine(88, 0, 96, 0)
         painter.rotate(30.0)
     painter.setPen(Qt.NoPen)
     painter.setBrush(AnalogClock.minuteColor)
     painter.save()
     painter.rotate(6.0 * (time.minute() + time.second() / 60.0))
     painter.drawConvexPolygon(AnalogClock.minuteHand)
     painter.restore()
     painter.setPen(AnalogClock.minuteColor)
     for j in range(60):
         if (j % 5) != 0:
             painter.drawLine(92, 0, 96, 0)
         painter.rotate(6.0)
Exemplo n.º 12
0
    def drawLine(self, painter: QPainter) -> None:
        """  """
        if not self.__showLine:
            return

        if not self.isChecked():
            return

        painter.save()

        pen: QPen = QPen()
        pen.setWidth(self.__lineWidth)
        pen.setColor(self.__lineColor)
        painter.setPen(pen)

        # 根据线条位置设置线条坐标
        pointStart: QPoint = QPoint()
        pointEnd: QPoint = QPoint()
        if self.__linePosition == NavButton.LinePosition.LINEPOSITION_LEFT:
            pointStart = QPoint(0, 0)
            pointEnd = QPoint(0, self.height())
        elif self.__linePosition == NavButton.LinePosition.LINEPOSITION_RIGHT:
            pointStart = QPoint(self.width(), 0)
            pointEnd = QPoint(self.width(), self.height())
        elif self.__linePosition == NavButton.LinePosition.LINEPOSITION_TOP:
            pointStart = QPoint(0, 0)
            pointEnd = QPoint(self.width(), 0)
        elif self.__linePosition == NavButton.LinePosition.LINEPOSITION_BOTTOM:
            pointStart = QPoint(0, self.height())
            pointEnd = QPoint(self.width(), self.height())

        painter.drawLine(pointStart, pointEnd)

        painter.restore()
Exemplo n.º 13
0
Arquivo: drift.py Projeto: djdt/pewpew
    def paint(
        self,
        painter: QtGui.QPainter,
        option: QtWidgets.QStyleOptionGraphicsItem,
        widget: QtWidgets.QWidget = None,
    ):
        option.state &= ~QtWidgets.QStyle.State_Selected
        super().paint(painter, option, widget)

        if self.trim_enabled:
            painter.drawLine(
                QtCore.QPointF(self.rect().left(), self.top),
                QtCore.QPointF(self.rect().right(), self.top),
            )
            painter.drawLine(
                QtCore.QPointF(self.rect().left(), self.bottom),
                QtCore.QPointF(self.rect().right(), self.bottom),
            )
            rect = self.rect()
            rect.setBottom(self.top)
            painter.fillRect(rect,
                             QtGui.QBrush(QtGui.QColor(255, 255, 255, 32)))
            rect = self.rect()
            rect.setTop(self.bottom)
            painter.fillRect(rect,
                             QtGui.QBrush(QtGui.QColor(255, 255, 255, 32)))
        else:
            painter.fillRect(self.rect(),
                             QtGui.QBrush(QtGui.QColor(255, 255, 255, 32)))
Exemplo n.º 14
0
    def paintEvent(self, *args):
        painter = QPainter(self)
        painter.setRenderHint(QPainter.HighQualityAntialiasing)

        r = self.rect()
        painter.fillRect(r, Qt.white)

        for element in self.elements:
            painter.translate(element.bounding_box.topLeft())
            element.paint(painter)
            painter.translate(-element.bounding_box.topLeft())

        for wire in self.wires:
            self._draw_wire(painter, wire)

        painter.setPen(QPen(Qt.red, 1, Qt.DashLine))
        painter.setBrush(Qt.transparent)
        for element in self.selected_elements:
            bb = element.bounding_box
            bb = bb.marginsAdded(QMargins(2, 2, 1, 1))
            painter.drawRect(bb)

        if self.wiring_assistant:
            painter.setPen(QPen(Qt.red, 1, Qt.PenStyle.DotLine))
            for line in self.guidelines:
                painter.drawLine(line)

            painter.setPen(QPen(Qt.red, 1, Qt.PenStyle.SolidLine))
            for p in self.guidepoints:
                painter.drawEllipse(p.x() - 4, p.y() - 4, 8, 8)

            if self.closest_point is not None:
                p = self.closest_point
                painter.drawEllipse(p.x() - 4, p.y() - 4, 8, 8)
Exemplo n.º 15
0
    def paintEvent(self, event):
        """
        custom paint event to draw horizontal line and handles at current y level
        """
        super().paintEvent(event)
        painter = QPainter(self)
        #painter.beginNativePainting()
        #painter.setRenderHint(QPainter.Antialiasing)
        x1,y1,x2,y2 = self.rect().getCoords()
        #painter.setPen(QPen(Qt.gray, 1))
        #painter.drawRect(self.rect())
        painter.setPen(QPen(COLOR, 1))
        painter.drawLine(QPoint(x1, y1+(y2-y1)/2), QPoint(x2, y1+(y2-y1)/2))
        path = QPainterPath()
        path.moveTo(x1, y1)
        path.lineTo(x1, y1 + y2)
        path.lineTo(10, y1 + y2/2)
        path.lineTo(x1, y1)
        painter.fillPath(path, QBrush(COLOR))
        path = QPainterPath()
        path.moveTo(x2+1, y1)
        path.lineTo(x2+1, y1 + y2)
        path.lineTo(x2 - 9, y1 + y2/2)
        path.lineTo(x2+1, y1)
        painter.fillPath(path, QBrush(COLOR))

        #painter.endNativePainting()
        painter.end()
 def paintEvent(self, event):
     painter = QPainter(self)
     painter.begin(self)
     painter.setPen(QPen(QColor(Qt.black), self.thickness, self.penStyle))
     painter.drawLine(20, self.height / 2, self.width, self.height / 2)
     painter.end()
     self.update()
Exemplo n.º 17
0
    def mousePressEvent(self, event):
        self._mouseLastPos = self.getLocalMousePos()

        if event.button() == Qt.LeftButton:
            self._mousePressed = MouseButton.LEFT
        elif event.button() == Qt.RightButton:
            self._mousePressed = MouseButton.RIGHT

        if self._drawMode == DrawingMode.PEN:
            if self._mousePressed == MouseButton.LEFT:
                self.doDraw(event.localPos(), True)

        elif self._drawMode == DrawingMode.DOTTED:
            if self._mousePressed == MouseButton.LEFT:
                self.doDraw(event.localPos(), True)
            elif self._mousePressed == MouseButton.RIGHT:
                self.doDraw(event.localPos(), False)

        elif self._drawMode == DrawingMode.ERASE:
            if self._mousePressed == MouseButton.LEFT:
                self.doDraw(event.localPos(), False)

        elif self._drawMode == DrawingMode.LINE:
            if self._mousePressed == MouseButton.LEFT:
                self._lineState = [event.localPos(), event.localPos()]
                painter = QPainter(self._scratch)
                painter.setPen(Qt.black)
                painter.drawLine(self._lineState[0], self._lineState[1])
                painter.end()
                self.update(self.rect())

        elif self._drawMode == DrawingMode.ATTR:
            if self._mousePressed == MouseButton.LEFT:
                self.doDrawAttr(event.localPos())
Exemplo n.º 18
0
    def paintEvent(self, event:QPaintEvent):
        p = QPainter(self)
        p.setBrush(Qt.blue)
        p.drawRect(10,10,self.width()-20, self.height()-20)
        p.setBrush(Qt.yellow)
        p.drawEllipse(20,20,self.width()-40, self.height()-40)

        p.save()

        p.translate(self.width()/2,self.height()/2)

        p.save()

        p.rotate((-90 + self.heure*30)+(self.minute)/2)
        pen = QPen(Qt.green,10)
        p.setPen(pen)
        p.drawLine(0,0,(self.width()-40)/5,0)

        p.restore()

        p.rotate(-90 + self.minute*6)
        pen = QPen(Qt.black, 10)
        p.setPen(pen)
        p.drawLine(0, 0, (self.width() - 40) / 3, 0)

        p.restore()

        p.setBrush(Qt.red)
        p.drawEllipse((self.width()/2)-20,(self.height()/2)-20,40, 40)
Exemplo n.º 19
0
    def doubleBufferPaint(self, buffer=None):
        self.blockSignals(True)
        #self.drawFrame(painter)
        if buffer is None:
            buffer = QImage(self.width(), self.height(), QImage.Format_RGB888)
        buffer.fill(Qt.black)
        # calculate offset and scale of droplet image pixmap
        scale_x, scale_y, offset_x, offset_y = self.get_from_image_transform()

        db_painter = QPainter(buffer)
        db_painter.setRenderHints(QPainter.Antialiasing
                                  | QPainter.NonCosmeticDefaultPen)
        db_painter.setBackground(QBrush(Qt.black))
        db_painter.setPen(QPen(Qt.black, 0))
        db_painter.drawPixmap(offset_x, offset_y, self._pixmap)
        pen = QPen(Qt.magenta, 1)
        pen_fine = QPen(Qt.blue, 1)
        pen.setCosmetic(True)
        db_painter.setPen(pen)
        # draw droplet outline and tangent only if evaluate_droplet was successful
        if self._droplet.is_valid:
            try:
                # transforming true image coordinates to scaled pixmap coordinates
                db_painter.translate(offset_x, offset_y)
                db_painter.scale(scale_x, scale_y)

                # drawing tangents and baseline
                db_painter.drawLine(*self._droplet.line_l)
                db_painter.drawLine(*self._droplet.line_r)
                db_painter.drawLine(*self._droplet.int_l, *self._droplet.int_r)

                # move origin to ellipse origin
                db_painter.translate(*self._droplet.center)

                # draw diagnostics
                # db_painter.setPen(pen_fine)
                # #  lines parallel to coordinate axes
                # db_painter.drawLine(0,0,20*scale_x,0)
                # db_painter.drawLine(0,0,0,20*scale_y)
                # # angle arc
                # db_painter.drawArc(-5*scale_x, -5*scale_y, 10*scale_x, 10*scale_y, 0, -self._droplet.tilt_deg*16)

                # rotate coordinates to ellipse tilt
                db_painter.rotate(self._droplet.tilt_deg)

                # draw ellipse
                # db_painter.setPen(pen)
                db_painter.drawEllipse(-self._droplet.maj / 2,
                                       -self._droplet.min / 2,
                                       self._droplet.maj, self._droplet.min)

                # # major and minor axis for diagnostics
                # db_painter.drawLine(0, 0, self._droplet.maj/2, 0)
                # db_painter.drawLine(0, 0, 0, self._droplet.min/2)
            except Exception as ex:
                logging.error(ex)
        db_painter.end()
        self.blockSignals(False)
        return buffer
Exemplo n.º 20
0
 def draw(self, painter: QPainter):
     super().draw(painter)
     pen = painter.pen()
     pen.setColor(QColor('darkgrey'))
     painter.setPen(pen)
     w = self.width
     h = self.height
     painter.drawLine(w//2, h*3//4, w*13//14, h*3//12)
Exemplo n.º 21
0
 def draw(cls, x, y, self: PreparedLine, painter: QPainter):
     old_pen = painter.pen()
     pen = QPen(QColor(0))
     pen.setWidth(self.size)
     pen.setStyle(Qt.PenStyle.SolidLine)
     painter.setPen(pen)
     tx = self.left + x
     ty = self.top + y
     painter.drawLine(QLine(tx, ty, tx + self.width, ty + self.height))
     painter.setPen(old_pen)
Exemplo n.º 22
0
 def mouseMoveEvent(self, event):
     if event.buttons() and Qt.LeftButton and self.drawing:
         painter = QPainter(self.image)
         painter.setPen(
             QPen(self.brushColor, self.brushSize, Qt.SolidLine,
                  Qt.RoundCap, Qt.RoundJoin))
         painter.drawLine(self.lastPoint,
                          event.pos() - QPoint(0, self.toolbar.height()))
         self.lastPoint = event.pos() - QPoint(0, self.toolbar.height())
         self.update()
Exemplo n.º 23
0
    def paintEvent(self, event: QPaintEvent):
        painter = QPainter()
        painter.begin(self)
        pen = QPen(Qt.black, 2, Qt.SolidLine)
        painter.setPen(pen)

        for i in range(4):
            painter.drawLine(70, 30 + i * 179, 607, 30 + i * 179)
            painter.drawLine(70 + i * 179, 30, 70 + i * 179, 567)
        painter.end()
    def drawCurrentBg_TB(self, painter: QPainter) -> None:
        painter.save()

        # 圆半径为高度一定比例,计算宽度,将宽度等分
        width: int = self.width() // self.__maxStep
        height: int = self.height() // 3
        radius: int = height // 2
        initX: int = width // 2
        initY: int = self.height() // 2
        radius -= radius // 5

        # 逐个绘制连接线条
        pen: QPen = QPen()
        pen.setWidthF(radius / 7)
        pen.setCapStyle(Qt.RoundCap)
        pen.setColor(self.__currentBackground)
        painter.setPen(pen)
        painter.setBrush(Qt.NoBrush)

        for i in range(self.__currentStep - 1):
            painter.drawLine(QPoint(initX, initY),
                             QPoint(initX + width, initY))
            initX += width

        # 如果当前进度超过一个步数且小于最大步数则增加半个线条
        if 0 < self.__currentStep < self.__maxStep:
            painter.drawLine(QPoint(initX, initY),
                             QPoint(initX + width // 2, initY))

        # 逐个绘制圆
        initX: int = width // 2
        painter.setPen(Qt.NoPen)
        painter.setBrush(self.__currentBackground)

        for i in range(self.__currentStep):
            painter.drawEllipse(QPoint(initX, initY), radius, radius)
            initX += width

        # 逐个绘制圆中的字符串
        initX: int = width // 2
        self.__iconFont.setPixelSize(radius)
        painter.setFont(self.__iconFont)
        painter.setPen(self.__currentForeground)
        painter.setBrush(Qt.NoBrush)

        # 完成字符,可以查看表格更换图形字符
        finshStr: str = chr(0xf00c)

        for i in range(self.__currentStep):
            textRect: QRect = QRect(initX - radius, initY - radius, radius * 2,
                                    radius * 2)
            painter.drawText(textRect, Qt.AlignCenter, finshStr)
            initX += width

        painter.restore()
Exemplo n.º 25
0
 def paint(self,painter:QPainter,view:QPaintDevice):
     painter.begin(view)
     self.setTool(painter)
     x1=linearTrans(self.x1,self.width,view.width())
     y1=linearTrans(self.y1,self.height,view.height())
     x2=linearTrans(self.x2,self.width,view.width())
     y2=linearTrans(self.y2,self.height,view.height())
     painter.drawLine(x1,y1,x2,y2)
     print("line:(%d,%d),(%d,%d)"%(x1,y1,x2,y2))
     painter.end()
     pass
Exemplo n.º 26
0
 def paint(self, painter: QPainter, model: BaseModel):
     if model.is_alive:
         assert self.is_set, 'Painter is not set.'
         _origin = self.transform(model.x, model.y, is_point=True)
         for _i, _pen in enumerate(
             [self._pen_z_2, self._pen_z_1, self._pen_z_0]):
             _factor = (3 - _i) / 3
             _tail_x = _origin.x() - model.dir_y * self._length * _factor
             _tail_y = _origin.y() + model.dir_x * self._length * _factor
             _tail = QPoint(_tail_x, _tail_y)
             painter.setPen(_pen)
             painter.drawLine(_origin, _tail)
Exemplo n.º 27
0
 def paintEvent(self, paintEvent):
     painter = QPainter(self)
     r = self._frame.rect()
     r -= QMargins(3, 3, 3, 4)
     painter.drawRect(r)
     painter.translate(r.width() / 2 + r.left(), r.height() / 2 + r.top())
     dp = math.degrees(self._p)
     pr = r.height() / 90
     painter.translate(0, pr * dp)
     d = math.degrees(self._r)
     painter.rotate(d)
     painter.drawLine(-r.width() / 2, 0, r.width() / 2, 0)
     painter.drawLine(0, r.height() / 2, 0, -r.height() / 2)
Exemplo n.º 28
0
 def paint(self, painter: QPainter, option: QStyleOptionGraphicsItem,
           widget: Optional[QWidget]) -> None:
     if self.is_on_selected_path:
         pen = QPen(QColor("green"), 5)
         pen.setCosmetic(True)
         painter.setPen(pen)
         painter.drawLine(self.ix, self.iy, self.jx, self.jy)
     else:
         pen = QPen(Qt.gray)
         pen.setWidth(2)
         pen.setCosmetic(True)
         painter.setPen(pen)
         painter.drawLine(self.ix, self.iy, self.jx, self.jy)
Exemplo n.º 29
0
    def drawGrid(self, image):
        "draws a grid on image"
        img = QPixmap(image.width() + 1, image.height() + 1)
        p = QPainter(img)
        p.drawPixmap(1, 1, image)
        # the +1 is for the grid around the image; otherwise grid is cut off

        w, h, z = img.width(), img.height(), self.zoom
        for i in range(max(self.width, self.height) + 1):
            p.drawLine(QPoint(0, i * z), QPoint(w, i * z))  # horiztonal lines
            p.drawLine(QPoint(i * z, 0), QPoint(i * z, h))  # vertical lines

        return img
Exemplo n.º 30
0
    def drawLine(self, painter: QPainter) -> None:
        # 上下部分偏移量
        offset: int = 10
        width: int = self.width()
        height: int = self.height()

        painter.save()
        painter.setBrush(Qt.NoBrush)

        pen: QPen = QPen()
        pen.setWidth(3)
        pen.setColor(self.__lineColor)
        pen.setCapStyle(Qt.RoundCap)
        painter.setPen(pen)

        # 每次同时存在三个元素
        if self.__horizontal:
            painter.drawLine(width // 3 * 1, offset, width // 3 * 1,
                             height - offset)
            painter.drawLine(width // 3 * 2, offset, width // 3 * 2,
                             height - offset)
        else:
            painter.drawLine(offset, height // 3 * 1, width - offset,
                             height // 3 * 1)
            painter.drawLine(offset, height // 3 * 2, width - offset,
                             height // 3 * 2)

        painter.restore()
Exemplo n.º 31
0
    def draw_overlay(self, pixmap):
        if self.line == [0, 0, 0, 0]:
            return pixmap

        painter = QPainter(pixmap)

        pen = QPen(QColor("green"))
        pen.setWidth(1)
        painter.setPen(pen)
        painter.drawLine(self.line[0], self.line[1], self.line[2],
                         self.line[3])

        painter.end()
        return pixmap