def paint(self,
              painter: QPainter,
              option: QStyleOptionGraphicsItem,
              widget: Optional[QWidget] = ...):
        painter.setPen(self.pen())
        brush = self.brush()
        painter.setBrush(brush)
        path = QPainterPath()
        path.moveTo(self.__sourcePoint)
        path.cubicTo(self._edge1, self._edge2, self.__destPoint)
        if self._isDigraph:
            painter.setBrush(Qt.gray)
            painter.drawPolygon(self.drawArrow())
            path.addPolygon(self.drawArrow())
        painter.setBrush(Qt.NoBrush)
        if self.isSelected():
            pen = painter.pen()
            pen.setColor(self.get_isSelectedPenColor())
        else:
            pen = painter.pen()
            pen.setColor(self.get_noSelectedPenColor())
        painter.setPen(pen)

        painter.drawPath(path)
        self.__path = path
예제 #2
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)
예제 #3
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)
예제 #4
0
    def __init__(self,
                 name,
                 baseSize,
                 contourPath,
                 presetFilename=None,
                 image=None):
        """

        @param name:
        @type name: str
        @param baseSize:
        @type baseSize: int
        @param contourPath: base shape of the brush family
        @type contourPath: QPainterPath
        @param presetFilename: preset file
        @type presetFilename: str
        """
        self.name = name
        self.baseSize = baseSize
        # init the brush pixmap
        self.basePixmap = QPixmap(self.baseSize, self.baseSize)
        # to get an alpha channel, we must fill the pixmap a first time with an opacity < 255
        self.basePixmap.fill(QColor(0, 0, 0, 0))
        if self.name == 'eraser':
            self.basePixmap.fill(QColor(0, 0, 0, 255))
        self.contourPath = contourPath
        # init brush cursor
        self.baseCursor = QPixmap(self.baseSize, self.baseSize)
        self.baseCursor.fill(QColor(0, 0, 0, 0))
        qp = QPainter(self.baseCursor)
        pen = qp.pen()
        pen.setWidth(self.baseSize / 20)
        qp.setPen(pen)  # needed!!
        qp.drawPath(contourPath)
        qp.end()
        self.__pxmp = None
        self.bOpacity = 1.0
        self.bFlow = 1.0
        self.bHardness = 1.0
        self.preset = None
        if presetFilename is not None:
            img = QImage(presetFilename)
        elif image is not None:
            img = image
        else:
            return
        img = img.convertToFormat(QImage.Format_ARGB32)
        buf = QImageBuffer(img)
        b = np.sum(buf[..., :3], axis=-1, dtype=np.float)
        b /= 3
        buf[..., 3] = b
        self.preset = QPixmap.fromImage(img)
예제 #5
0
class GroupMemberWidget(QWidget):
    def __init__(self, parent=None):
        super(GroupMemberWidget, self).__init__(parent)
        self.parent = parent
        self.setFixedSize(200, 50)
        self.setAcceptDrops(True)
        self._player_name = ""
        self._player_id = 0
        self._csoport_number = 0
        self._csoport_sor = 0
        self.painter = QPainter()

    def _set_player_id(self, number):
        self._player_id = number

    # todo a beállításnál ez legyen használva
    def _set_csoport_number(self, number):
        self._csoport_number = number

    def _set_csoport_sor(self, number):
        self._csoport_sor = number

    def _set_player_name(self, name):
        self._player_name = name
        self.update()

    def _get_player_id(self):
        return int(self._player_id)

    def _get_csoport_number(self):
        return int(self._csoport_number)

    def _get_csoport_sor(self):
        return int(self._csoport_sor)

    def paintEvent(self, event):
        self.painter.begin(self)
        self.painter.setPen(QPen(QColor("blue")))
        self.painter.setBrush(QBrush(QColor("lightgray")))
        pen0 = QPen()
        pen0.setWidth(0)
        pen = self.painter.pen()
        self.painter.setPen(pen0)
        self.painter.drawRect(0, 0, 199, 49)
        font = QFont("Verdana, 20")
        font.setBold(True)
        self.painter.setFont(font)
        self.painter.setPen(pen)
        self.painter.drawText(5, 30, str(self._csoport_sor + 1))
        self.painter.drawText(20, 30, self._player_name)
        # self.painter.drawText(20, 35, str(self._player_id) + "   " + str(self._csoport_sor + 1) + "    " + self._player_name)
        self.painter.end()
 def paintEvent(self, e):
     """ Overrides the paint event to make it so that place holder text is displayed when the list is empty. """
     super(CollectionStaticSelectionWidget, self).paintEvent(e)
     if self.count() == 0:
         painter = QPainter(self.viewport())
         oldPen = painter.pen()
         painter.setPen(self.PLACEHOLDER_TEXT_PEN)
         painter.drawText(
             self.contentsRect(), Qt.AlignCenter | Qt.TextWordWrap,
             maya.stringTable[
                 'y_collectionStaticSelectionWidget.kDragObjectsUsingOutlinerOrSelectFromViewport']
         )
         painter.setPen(oldPen)
예제 #7
0
    def draw(cls, x, y, self: PreparedText, painter: QPainter):
        font = QFont(self.fontName)
        if self.fontSize:
            font.setPointSizeF(self.fontSize)
        if self.fontBold:
            font.setBold(True)
        if self.fontItalic:
            font.setItalic(True)
        brushStyle = self.brushStyle or Qt.BrushStyle.SolidPattern
        w = self.width
        h = self.height
        tx = self.left + x
        ty = self.top + y
        if self.border:
            w -= self.border.width
            h -= self.border.width * 2
            tx += self.border.width
            ty += self.border.width
        rect = QRectF(tx, ty, w, h)

        if self.backColor:
            painter.setBrush(brush_style_map[brushStyle])
            painter.fillRect(rect, QColor('#' + hex(self.backColor)[2:]))
        if self.allowTags:
            doc = QTextDocument()
            doc.setDefaultFont(font)
            doc.setHtml(self.text)
            doc.setDocumentMargin(0)
            painter.save()
            painter.translate(tx + 2, ty + 1)
            doc.drawContents(painter, QRectF(0, 0, self.width, self.height))
            painter.restore()
        else:
            painter.save()
            painter.setFont(font)
            flags = cls.textFlags(self)
            rect.setX(rect.x() + 2)
            rect.setY(rect.y() + 1)
            painter.drawText(rect, flags, self.text)
            painter.restore()
        if self.border and self.border.color is not None:
            old_pen = painter.pen()
            pen = QPen(
                QColor(self.border.color), self.border.width,
                pen_style_map.get(self.border.style, Qt.PenStyle.SolidLine))
            painter.setPen(pen)
            painter.drawLines(
                cls.getLines(self, self.left + x, self.top + y,
                             self.left + self.width + x,
                             self.top + y + self.height))
            painter.setPen(old_pen)
    def paint(self, painter: QPainter, option: QStyleOptionGraphicsItem, widget: QWidget = None):
        # setup border pen
        pen = painter.pen()
        pen.setWidthF(self.monitor_border_width)
        pen.setCapStyle(Qt.FlatCap)
        painter.setPen(pen)

        # create monitor_rect
        rect_monitor = QRectF(0, 0,
                              self.monitor.screen_width, self.monitor.screen_height)

        # Draw gradient in the background
        gradient = QLinearGradient(rect_monitor.topRight(), rect_monitor.bottomLeft())
        gradient.setColorAt(0.0, self.monitor_color_gradient_top)
        gradient.setColorAt(1.0, self.monitor_color_gradient_bottom)
        painter.fillRect(rect_monitor, gradient)

        # draw monitor label
        self.draw_monitor_label(painter, rect_monitor, self.index)

        # draw borders inside monitor_rect
        border_offset = painter.pen().widthF() / 2
        border_rect = rect_monitor.adjusted(border_offset, border_offset, -border_offset, border_offset)
        painter.drawRect(border_rect)
예제 #9
0
    def paintEvent(self, e):
        """ Draws the color bar and arrow """
        if self.item():
            painter = QPainter(self)

            # Draws the color bar
            painter.setPen(Qt.NoPen)
            rect = QRect(0, 0, self.COLOR_BAR_WIDTH, self.COLOR_BAR_HEIGHT)
            painter.fillRect(rect,
                             self.item().data(renderSetupRoles.NODE_COLOR_BAR))
            oldBrush = painter.brush()

            if self.item().type(
            ) == renderSetup.RENDER_OVERRIDE_TYPE and self.item(
            ).isLocalRender():
                diameter = rect.width() - 2
                rect2 = QRect(rect.x() + 1,
                              rect.y() + (rect.height() - diameter) / 2,
                              diameter, diameter)
                brush = painter.brush()
                pen = painter.pen()
                hints = painter.renderHints()

                painter.setRenderHint(QPainter.Antialiasing, on=True)
                painter.setPen(Qt.NoPen)
                painter.setBrush(
                    QBrush(QColor(67, 79, 70), style=Qt.SolidPattern))
                painter.drawEllipse(rect2)

                painter.setRenderHints(hints)
                painter.setPen(pen)
                painter.setBrush(brush)

            # Draws the arrow
            painter.setBrush(self.ARROW_COLOR)
            if self.arrowPoints == BaseDelegate.EXPANDED_ARROW:
                painter.translate(self.EXPANDED_ARROW_OFFSET, 0.0)
            else:
                painter.translate(self.COLLAPSED_ARROW_OFFSET, 0.0)
            painter.drawPolygon(self.arrowPoints)
            painter.setBrush(oldBrush)

            # Draws the node type text
            painter.setPen(QPen(self.item().data(Qt.TextColorRole)))
            text = self.item().data(renderSetupRoles.NODE_TYPE_STR)
            painter.setFont(self.item().data(Qt.FontRole))
            painter.drawText(self.NODE_TYPE_TEXT_RECT, text,
                             QTextOption(Qt.AlignLeft | Qt.AlignVCenter))
예제 #10
0
class SzumWidget(QWidget):
    def __init__(self, parent=None):
        super(SzumWidget, self).__init__(parent)
        self.setFixedSize(50, 50)
        self._ertek = 0
        self._p_id = 0
        self.painter = QPainter()

    def _set_p_id(self, number):
        self._p_id = number
        self.update()

    def _set_ertek(self, number):
        self._ertek = number
        self.update()

    def _get_p_id(self):
        return self._p_id

    def _get_ertek(self):
        return self._ertek

    def paintEvent(self, event):
        self.painter.begin(self)
        pen0 = QPen()
        pen0.setWidth(0)
        pen_def = self.painter.pen()
        pen_white = QPen(QColor(255, 255, 255))
        pen_black = QPen(QColor(0, 0, 0))
        pen_blue = QPen(QColor(0, 0, 255))
        pen_red = QPen(QColor(255, 0, 0))
        brush_black = QBrush(QColor(0, 0, 0))
        brush_ready = QBrush(QColor(170, 255, 255))
        brush_csak1 = QBrush(QColor(255, 255, 255))

        self.painter.setBrush(brush_csak1)
        self.painter.setPen(pen0)
        self.painter.drawRect(0, 0, 49, 49)
        self.painter.setPen(pen_black)
        self.painter.drawText(25, 30, str(self._ertek))

        self.painter.end()
예제 #11
0
    def paint(self, painter: QPainter, option: QStyleOptionViewItem, index: QModelIndex) -> None:
        itemOption = QStyleOptionViewItem(option)

        # disable focus outline
        if itemOption.state & QStyle.State_HasFocus:
            itemOption.state ^= QStyle.State_HasFocus
        # hover whole row
        if index.row() == option.styleObject.hoverIndexRow:
            itemOption.state |= QStyle.State_MouseOver

        super().paint(painter, itemOption, index)

        # draw lines around numeric columns
        if index.column() in (5, 11):
            oldpen = painter.pen()
            painter.setPen(self.linepen)
            painter.drawLine(
                itemOption.rect.topRight() + QPoint(0, 0),
                itemOption.rect.bottomRight() + QPoint(0, 0)
            )
            painter.setPen(oldpen)
예제 #12
0
 def paintEvent(self, event):
     painter = QPainter(self)
     painter.setPen(Qt.NoPen)
     self.penFromEnum = painter.pen()
     painter.setPen(int(Qt.NoPen))
     self.penFromInteger = painter.pen()
예제 #13
0
class GroupMemberWidget(QWidget):
    def __init__(self, parent=None):
        super(GroupMemberWidget, self).__init__(parent)
        self.parent = parent
        self.setFixedSize(200, 50)
        self.setAcceptDrops(True)
        self._player_name = ""
        self._player_id = 0
        self._csoport_number = 0
        self._csoport_sor = 0
        self.painter = QPainter()

    def _set_sorok_szama(self, number):
        self.sorok_szama = number

    def _set_player_id(self, number):
        self._player_id = number
        self.update()

    def _set_player_name(self, name):
        self._player_name = str(name)
        self.update()

    # todo a beállításnál ez legyen használva
    def _set_csoport_number(self, number):
        self._csoport_number = number

    def _set_csoport_sor(self, number):
        self._csoport_sor = number

    def _get_player_id(self):
        return int(self._player_id)

    def _get_csoport_number(self):
        return int(self._csoport_number)

    def _get_csoport_sor(self):
        return int(self._csoport_sor)

    def paintEvent(self, event):
        self.painter.begin(self)
        self.painter.setPen(QPen(QColor("blue")))
        self.painter.setBrush(QBrush(QColor("lightgray")))
        pen0 = QPen()
        pen0.setWidth(0)
        pen = self.painter.pen()
        self.painter.setPen(pen0)
        self.painter.drawRect(0, 0, 199, 49)
        font = QFont("Verdana, 20")
        font.setBold(True)
        self.painter.setFont(font)
        self.painter.setPen(pen)
        self.painter.drawText(5, 30, str(self._csoport_sor + 1))
        self.painter.drawText(20, 30, self._player_name + str(self._player_id))
        self.painter.end()

    def dragEnterEvent(self, event):
        if event.mimeData().hasFormat("application/x-lista-item"):
            event.accept()
        else:
            event.ignore()

    def dragMoveEvent(self, event):
        if event.mimeData().hasFormat("application/x-lista-item"):
            event.setDropAction(Qt.MoveAction)
            event.accept()
        else:
            event.ignore()

    def dropEvent(self, event):
        if event.mimeData().hasFormat("application/x-lista-item"):
            data = event.mimeData().data("application/x-lista-item")
            stream = QDataStream(data, QIODevice.ReadOnly)
            self._player_name = stream.readQString()
            self._player_id = stream.readInt16()  # sor eseten p1, oszlopnál p2
            for i in range(self.sorok_szama):
                self.parent.eredmenyek[self._csoport_number][
                    self._csoport_sor][i]._set_p1_id(self._player_id)
                self.parent.eredmenyek[self._csoport_number][i][
                    self._csoport_sor]._set_p2_id(self._player_id)
            # print("id: ", self._player_id, "csoport: ", self._get_csoport_number(), "sor: ", self._get_csoport_sor())
            # icon = QIcon()
            # stream >> icon
            event.setDropAction(Qt.MoveAction)
            event.accept()
            self.update()
        else:
            event.ignore()

    def mouseMoveEvent(self, event):
        self.startDrag()
        QWidget.mouseMoveEvent(self, event)

    def startDrag(self):
        data = QByteArray()
        stream = QDataStream(data, QIODevice.WriteOnly)
        stream.writeQString(self._player_name)
        stream.writeInt16(self._player_id)
        mimedata = QMimeData()
        mimedata.setData("application/x-lista-item", data)
        drag = QDrag(self)
        drag.setMimeData(mimedata)
        if drag.exec_(Qt.MoveAction) == Qt.MoveAction:
            self._player_name = ""
            self._player_id = 0
            for i in range(self.sorok_szama):
                self.parent.eredmenyek[self._csoport_number][
                    self._csoport_sor][i]._set_p1_id(0)
                self.parent.eredmenyek[self._csoport_number][i][
                    self._csoport_sor]._set_p2_id(0)
            self.update()
예제 #14
0
class EredmenyWidget(QWidget):
    def __init__(self, parent=None):
        super(EredmenyWidget, self).__init__(parent)
        self.parent = parent
        self.setFixedSize(50, 50)
        self._player1_id = 0
        self._player2_id = 0
        self._csoport_number = 0
        self._csoport_sor = 0
        self._csoport_oszlop = 0
        self.painter = QPainter()

    def _set_csoport_number(self, number):
        self._csoport_number = number
        self.update()

    def _set_csoport_sor(self, number):
        self._csoport_sor = number
        self.update()

    def _set_p1_id(self, number):
        self._player1_id = number
        self.update()

    def _set_p2_id(self, number):
        self._player2_id = number
        self.update()

    def _get_p1_id(self):
        return self._player1_id

    def _get_p2_id(self):
        return self._player2_id

    def _set_csoport_oszlop(self, number):
        self._csoport_oszlop = number

    def paintEvent(self, event):
        self.painter.begin(self)
        pen0 = QPen()
        pen0.setWidth(0)
        pen_def = self.painter.pen()
        pen_white = QPen(QColor(255, 255, 255))
        pen_black = QPen(QColor(0, 0, 0))
        pen_blue = QPen(QColor(0, 0, 255))
        pen_red = QPen(QColor(255, 0, 0))
        brush_black = QBrush(QColor(0, 0, 0))
        brush_ready = QBrush(QColor(170, 255, 255))
        brush_csak1 = QBrush(QColor(255, 255, 255))

        if self._player1_id == self._player2_id:
            self.painter.setBrush(brush_black)
            self.painter.setPen(pen0)
            self.painter.drawRect(0, 0, 49, 49)
            self.painter.setPen(pen_red)
            self.painter.drawText(
                15, 20,
                str(self._player1_id) + " : " + str(self._player2_id))
            # self.painter.drawText(20, 35, "X")
        elif self._player1_id == 0 or self._player2_id == 0:
            self.painter.setBrush(brush_csak1)
            self.painter.setPen(pen0)
            self.painter.drawRect(0, 0, 49, 49)
            self.painter.setPen(pen_blue)
            self.painter.drawText(
                15, 20,
                str(self._player1_id) + " : " + str(self._player2_id))
            # self.painter.drawText(20, 35, "X")
        else:
            self.painter.setBrush(brush_ready)
            self.painter.setPen(pen0)
            self.painter.drawRect(0, 0, 49, 49)
            self.painter.setPen(pen_black)
            self.painter.drawText(
                15, 20,
                str(self._player1_id) + " : " + str(self._player2_id))
        self.painter.end()
예제 #15
0
    starPath = QPainterPath()

    starPath.moveTo(28, 15)

    for i in range(5):
        starPath.lineTo(14 + 14 * math.cos(0.8 * i * math.pi),
                        15 + 14 * math.sin(0.8 * i * math.pi))

    starPath.closeSubpath()

    star = QImage(30, 30, QImage.Format_ARGB32)
    star.fill(Qt.transparent)
    painter = QPainter(star)
    painter.setRenderHint(QPainter.Antialiasing)
    painter.setPen(QColor.fromRgb(0xf6, 0xa6, 0x25))
    painter.setBrush(painter.pen().color())
    painter.drawPath(starPath)

    series2.setBrush(star)
    series2.setPen(QColor(Qt.transparent))

    chartView = QtCharts.QChartView(chart)

    chartView.setRenderHint(QPainter.Antialiasing)
    chart.addSeries(series0)
    chart.addSeries(series1)
    chart.addSeries(series2)

    chart.setTitle("Simple scatterchart example")
    chart.createDefaultAxes()
    chart.setDropShadowEnabled(False)
예제 #16
0
class EredmenyWidget(QWidget):
    def __init__(self, parent=None):
        super(EredmenyWidget, self).__init__(parent)
        self.parent = parent
        self.setFixedSize(50, 50)
        self._player1_id = 0
        self._player2_id = 0
        self._csoport_number = 0
        self._csoport_sor = 0
        self._csoport_oszlop = 0
        self._leg1 = 0
        self._leg2 = 0
        self._pontszam = -1
        self.painter = QPainter()

    def contextMenuEvent(self, event):
        print("context-menü")
        contextMenu = QMenu(self)
        firstAction = contextMenu.addAction("Egy")
        secondAction = contextMenu.addAction("Kettő")
        action = contextMenu.exec_(self.mapToGlobal(event.pos()))
        if action == firstAction:
            if self._csoport_sor < self._csoport_oszlop:
                match_id = (10000 * self.parent.torna_id) + (
                    100 * self._player1_id) + self._player2_id
            elif self._csoport_sor > self._csoport_oszlop:
                match_id = (10000 * self.parent.torna_id) + (
                    100 * self._player2_id) + self._player1_id
            # print("match_id: ", match_id, "player1: ", self._player1_id, self.parent.torna_id, "hány leg", self.parent.nyereshez_kell)
            winner_id = self._player1_id
            set_id = 1
            now = datetime.now().strftime("%Y-%m-%d %H.%M.%S")

            query3 = QSqlQuery(
                f"delete from matches where match_id={match_id} and winner_id={winner_id}",
                db=db)
            query3.exec_()

            insertDataQuery = QSqlQuery()
            insertDataQuery.prepare(""" 
                insert into matches (
                      match_id,
                      leg_id,
                      set_id,
                      winner_id,
                      timestamp
                      )
                values (?, ?, ?, ?, ?)
                """)
            for x in range(1, self.parent.nyereshez_kell + 1):
                insertDataQuery.addBindValue(match_id)
                insertDataQuery.addBindValue(x)
                insertDataQuery.addBindValue(1)
                insertDataQuery.addBindValue(winner_id)
                insertDataQuery.addBindValue(now)
                insertDataQuery.exec_()

            query2 = QSqlQuery(
                f"update torna_match set match_status=2 where match_id={match_id}",
                db=db)
            query2.exec_()

    def update_osszes_pont(self):
        self.parent.szum_eredmenyek[self._csoport_number][3][
            self._csoport_sor]._set_ertek(0)
        for oszlop in range(self.parent.sorok_szama):
            self.parent.szum_eredmenyek[self._csoport_number][3][
                self._csoport_sor]._set_ertek(
                    self.parent.szum_eredmenyek[self._csoport_number][3][
                        self._csoport_sor]._get_ertek() +
                    self.parent.eredmenyek[self._csoport_number][
                        self._csoport_sor][oszlop]._get_pontszam())

    def change_leg1_number(self):
        self.parent.szum_eredmenyek[self._csoport_number][0][
            self._csoport_sor]._set_ertek(0)
        for oszlop in range(self.parent.sorok_szama):
            self.parent.szum_eredmenyek[self._csoport_number][0][
                self._csoport_sor]._set_ertek(
                    self.parent.szum_eredmenyek[self._csoport_number][0]
                    [self._csoport_sor]._get_ertek() + self.parent.eredmenyek[
                        self._csoport_number][self._csoport_sor][oszlop]._leg1)
        self.change_legs_dif()

    def change_leg2_number(self):
        self.parent.szum_eredmenyek[self._csoport_number][1][
            self._csoport_sor]._set_ertek(0)
        for oszlop in range(self.parent.sorok_szama):
            self.parent.szum_eredmenyek[self._csoport_number][1][
                self._csoport_sor]._set_ertek(
                    self.parent.szum_eredmenyek[self._csoport_number][1]
                    [self._csoport_sor]._get_ertek() + self.parent.eredmenyek[
                        self._csoport_number][self._csoport_sor][oszlop]._leg2)
        self.change_legs_dif()

    def change_legs_dif(self):
        self.parent.szum_eredmenyek[self._csoport_number][2][
            self._csoport_sor]._set_ertek(
                self.parent.szum_eredmenyek[self._csoport_number][0]
                [self._csoport_sor]._get_ertek() - self.parent.szum_eredmenyek[
                    self._csoport_number][1][self._csoport_sor]._get_ertek())

    def _set_csoport_number(self, number):
        self._csoport_number = number
        self.update()

    def _set_csoport_sor(self, number):
        self._csoport_sor = number
        self.update()

    def _set_csoport_oszlop(self, number):
        self._csoport_oszlop = number

    def _set_p1_id(self, number):
        self._player1_id = number
        self.update()

    def _set_p2_id(self, number):
        self._player2_id = number
        self.update()

    def _set_pontszam(self, number):
        self._pontszam = number
        self.update()

    def _set_leg1(self, number):
        self._leg1 = number
        self.update()

    def _set_leg2(self, number):
        self._leg2 = number
        self.update()

    def _get_leg1(self):
        return self._leg1

    def _get_leg2(self):
        return self._leg2

    def _get_p1_id(self):
        return self._player1_id

    def _get_p2_id(self):
        return self._player2_id

    def _get_pontszam(self):
        # Ha még nem játszották le 0-t ad vissza, egyébként a konkrét pontot
        if self._pontszam < 0:
            return 0
        else:
            return self._pontszam

    def paintEvent(self, event):
        self.painter.begin(self)
        pen0 = QPen()
        pen0.setWidth(0)
        pen_def = self.painter.pen()
        pen_white = QPen(QColor(255, 255, 255))
        pen_black = QPen(QColor(0, 0, 0))
        pen_blue = QPen(QColor(0, 0, 255))
        pen_red = QPen(QColor(255, 0, 0))
        brush_black = QBrush(QColor(0, 0, 0))
        brush_ready = QBrush(QColor(170, 255, 255))
        brush_csak1 = QBrush(QColor(255, 255, 255))
        brush_end = QBrush(QColor(200, 255, 150))

        if self._player1_id == self._player2_id:
            self.painter.setBrush(brush_black)
            self.painter.setPen(pen0)
            self.painter.drawRect(0, 0, 49, 49)
            # self.painter.setPen(pen_red)
            # self.painter.drawText(2, 10, str(self._player1_id))
            # self.painter.drawText(2, 20, str(self._player2_id))
            # self.painter.drawText(20, 35, "X")
        elif self._player1_id == 0 or self._player2_id == 0:
            self.painter.setBrush(brush_csak1)
            self.painter.setPen(pen0)
            self.painter.drawRect(0, 0, 49, 49)
            # self.painter.setPen(pen_blue)
            # self.painter.drawText(2, 10, str(self._player1_id))
            # self.painter.drawText(2, 20, str(self._player2_id))
            # self.painter.drawText(25, 30, "X")
        else:
            if self._pontszam >= 0:
                self.painter.setBrush(brush_end)
            else:
                self.painter.setBrush(brush_ready)
            self.painter.setPen(pen0)
            self.painter.drawRect(0, 0, 49, 49)
            self.painter.setPen(pen_black)
            self.painter.drawText(12, 20, str(self._leg1))
            self.painter.drawText(23, 20, " : ")
            self.painter.drawText(33, 20, str(self._leg2))
            if self._pontszam >= 0:
                self.painter.drawText(21, 32, str(self._pontszam))
        self.painter.end()
예제 #17
0
    def paint(self,
              painter: QPainter,
              option: QStyleOptionGraphicsItem,
              widget: QWidget = ...):
        fillColor = self.color.darker(
            150) if option.state & QStyle.State_Selected else self.color
        if option.state & QStyle.State_MouseOver:
            fillColor = fillColor.lighter(125)

        lod = option.levelOfDetailFromTransform(painter.worldTransform())

        if lod < 0.2:
            if lod < 0.125:
                painter.fillRect(QRectF(0, 0, 110, 70), fillColor)
                return

            b = painter.brush()
            painter.setBrush(fillColor)
            painter.drawRect(13, 13, 97, 57)
            painter.setBrush(b)
            return

        oldPen = painter.pen()
        pen = oldPen
        width = 0
        if option.state & QStyle.State_Selected:
            width += 2
        pen.setWidth(width)
        b = painter.brush()
        painter.setBrush(
            QBrush(
                fillColor.darker(120 if option.state
                                 & QStyle.State_Sunken else 100)))

        painter.drawRect(QRect(14, 14, 79, 39))
        painter.setBrush(b)

        if lod >= 1:
            painter.setPen(QPen(Qt.gray, 1))
            painter.drawLine(15, 54, 94, 54)
            painter.drawLine(94, 53, 94, 15)
            painter.setPen(QPen(Qt.black, 0))

        # Draw text
        if lod >= 2:
            font = QFont("Times", 10)
            font.setStyleStrategy(QFont.ForceOutline)
            painter.setFont(font)
            painter.save()
            painter.scale(0.1, 0.1)
            painter.drawText(
                170, 180,
                f"Model: VSC-2000 (Very Small Chip) at {self.x}x{self.y}")
            painter.drawText(170, 200,
                             "Serial number: DLWR-WEER-123L-ZZ33-SDSJ")
            painter.drawText(170, 220, "Manufacturer: Chip Manufacturer")
            painter.restore()

        # Drawlines
        lines: List[QLineF] = []
        if lod >= 0.5:
            s = 1 if lod > 0.5 else 2
            for i in range(0, 11, s):
                lines.append(QLineF(18 + 7 * i, 13, 18 + 7 * i, 5))
                lines.append(QLineF(18 + 7 * i, 54, 18 + 7 * i, 62))

            for i in range(0, 7, s):
                lines.append(QLineF(5, 18 + i * 5, 13, 18 + i * 5))
                lines.append(QLineF(94, 18 + i * 5, 102, 18 + i * 5))

        if lod >= 0.4:
            lines.extend([
                QLineF(25, 35, 35, 35),
                QLineF(35, 30, 35, 40),
                QLineF(35, 30, 45, 35),
                QLineF(35, 40, 45, 35),
                QLineF(45, 30, 45, 40),
                QLineF(45, 35, 55, 35)
            ])
        painter.drawLines(lines[:])

        ## Draw red ink
        if len(self.stuff) > 1:
            p = painter.pen()
            painter.setPen(
                QPen(Qt.red, 1, Qt.SolidLine, Qt.RoundCap, Qt.RoundJoin))
            painter.setBrush(Qt.NoBrush)
            path = QPainterPath()
            path.moveTo(self.stuff[0])
            for i in range(1, len(self.stuff)):
                path.lineTo(self.stuff[i])
            painter.drawPath(path)
            painter.setPen(p)
예제 #18
0
 def paintEvent(self, event):
     painter = QPainter(self)
     painter.setPen(Qt.NoPen)
     self.penFromEnum = painter.pen()
     painter.setPen(int(Qt.NoPen))
     self.penFromInteger = painter.pen()