Ejemplo n.º 1
0
    def paintEvent(self, event):
        # opt = QStyleOption()
        # opt.initFrom(self)
        p = QtGui.QPainter(self)
        p.setRenderHint(QtGui.QPainter.Antialiasing)  # 抗锯齿
        # self.style().drawPrimitive(QStyle.PE_Widget, opt, p, self)
        # super(Canvas, self).paintEvent(event)

        # image = Image.open(r'E:\Codes\res\background\bk2.jpg')
        # image = image.filter(MyGaussianBlur(radius=6))
        # image.save('./tmp.jpg')
        img_new = Utils.img_center(self.rect().width(),
                                   self.rect().height(),
                                   r'E:\Codes\res\background\bk2.jpg')
        p.setBrush(QtGui.QBrush(img_new))  # 图片刷子
        # p.setBrush(QtGui.QBrush(QtGui.QPixmap(r'E:\Codes\res\background\bk3.jpg')))  # 图片刷子
        # painter.setBrush(QBrush(Qt.blue))
        p.setPen(QtCore.Qt.transparent)

        rect = self.rect()
        # rect.setWidth(rect.width() - self.deep)
        # rect.setHeight(rect.height() - self.deep)
        p.drawRoundedRect(rect, self.radius, self.radius)
        # painterPath= QPainterPath()
        # painterPath.addRoundedRect(rect, 15, 15)
        # painter.drawPath(painterPath)

        # 直接填充图片
        # pix = QPixmap('./res/images/background11.jpg')
        # painter.drawPixmap(self.rect(), pix)

        super(FoWorld, self).paintEvent(event)
Ejemplo n.º 2
0
    def slot_text_changed(self, obj, text):
        name = obj.objectName()
        print(name, text)
        if name == 'le_file_src':
            self.file_open = text
            if text and os.path.exists(text) and os.path.isfile(text):
                self.lb_img.setPixmap(
                    Utils.img_center(self.lb_img.width(), self.lb_img.height(),
                                     text))

        elif name == 'le_file_dst':
            self.file_save = text
        elif name == 'le_watermark':
            self.lb_water.setText(text)
Ejemplo n.º 3
0
    def resizeEvent(self, a0: QtGui.QResizeEvent) -> None:
        self.resize(self.width, self.height)
        save_file = './tmp.png'
        if self.kind == 0:  # 东座
            PilPic.rotate(self.pic, 90, save_file)
        elif self.kind == 1:
            save_file = self.pic
        elif self.kind == 2:  # 西座
            PilPic.rotate(self.pic, -90, save_file)
        else:
            PilPic.turn(self.pic, Image.FLIP_TOP_BOTTOM, save_file)

        self.setPixmap(Utils.img_center(self.width, self.height, save_file))

        super(Tile, self).resizeEvent(a0)
Ejemplo n.º 4
0
    def paintEvent(self, event: QtGui.QPaintEvent) -> None:
        super(Stone, self).paintEvent(event)
        # print('stone paint')
        # 不通过样式,直接设置圆角,通用,且不继承于子控件
        painter = QtGui.QPainter(self)
        painter.setRenderHint(QtGui.QPainter.Antialiasing, True)  # 设置抗锯齿

        img_new = Utils.img_center(self.width(), self.height(), self._pic)
        painter.setBrush(QtGui.QBrush(img_new))  # 设置底图的方式之一

        painter.setPen(QtCore.Qt.transparent)  # 无边框

        rect = QtCore.QRect(0, 0, self._size, self._size)
        painter.drawRoundedRect(rect, self.width() // 2, self.height() // 2)

        # 最后一手棋上画圆
        border = 2  # 线宽
        diam = rect.width() / 1.5  # 直径
        margin = (rect.width() - diam) / 2
        if self.is_cur_lot:
            # 判断是书写笔还是橡皮
            # mode = QPainter.CompositionMode_SourceOver if self.is_draw \
            #     else QPainter.CompositionMode_Clear  # 橡皮擦设置为擦除并为透明色。
            # painter.setCompositionMode(mode)
            # print(mode)
            # 然后画图。
            # pen = QtGui.QPen(QtGui.QColor(255, 122, 110, 255))  # 设置颜色
            pen = QtGui.QPen(QtCore.Qt.red)  # 设置颜色
            pen.setWidth(border)  # 设置边框宽度
            painter.setPen(pen)  # 添加描边边框
            painter.setBrush(QtCore.Qt.NoBrush)
            # print(rect)
            rt = QtCore.QRectF(margin, margin, diam, diam)
            painter.drawEllipse(rt)

        # 数字
        if self.is_show_lot:  # and not self.is_cur_lot
            color = QtCore.Qt.white if self.lot % 2 else QtCore.Qt.black
            painter.setPen(color)
            painter.setFont(QtGui.QFont("Arial", 12))
            painter.drawText(rect, QtCore.Qt.AlignCenter, f'{self.lot}')