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)
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)
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)
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}')