def paintEvent(self, theEvent): """Custom implementation of the label painter that rotates the label 90 degrees. """ pObj = QStylePainter(self) oObj = QStyleOptionTab() for i in range(self.count()): self.initStyleOption(oObj, i) pObj.drawControl(QStyle.CE_TabBarTabShape, oObj) pObj.save() oSize = oObj.rect.size() oSize.transpose() oRect = QRect(QPoint(), oSize) oRect.moveCenter(oObj.rect.center()) oObj.rect = oRect oCenter = self.tabRect(i).center() pObj.translate(oCenter) pObj.rotate(90) pObj.translate(-oCenter) pObj.drawControl(QStyle.CE_TabBarTabLabel, oObj) pObj.restore() return
def paintEvent(self, event): """绘制事件""" text = self.text() option = QStyleOptionButton() self.initStyleOption(option) option.text = '' # 不绘制文字 painter = QStylePainter(self) painter.setRenderHint(QStylePainter.Antialiasing) painter.setRenderHint(QStylePainter.HighQualityAntialiasing) painter.setRenderHint(QStylePainter.SmoothPixmapTransform) painter.drawControl(QStyle.CE_PushButton, option) # 变换坐标为正中间 painter.translate(self.rect().center()) painter.rotate(self._angle) # 旋转 # 绘制图片 if self._pixmap and not self._pixmap.isNull(): w = self.width() h = self.height() pos = QPointF(-self._pixmap.width() / 2, -self._pixmap.height() / 2) painter.drawPixmap(pos, self._pixmap) elif text: # 在变换坐标后的正中间画文字 fm = self.fontMetrics() w = fm.width(text) h = fm.height() rect = QRectF(0 - w * 2, 0 - h, w * 2 * 2, h * 2) painter.drawText(rect, Qt.AlignCenter, text) else: super(RotateButton, self).paintEvent(event)
def paintEvent(self, _): option = QStyleOptionButton() self.initStyleOption(option) painter = QStylePainter(self) if self._rotateAnimationStarted: option.text = "" painter.drawControl(QStyle.CE_PushButton, option) if not self._rotateAnimationStarted: return painter.save() font = self.font() font.setPointSize(self.fontSize) font.setFamily("FontAwesome") painter.setFont(font) # 变换坐标为正中间 painter.translate(self.rect().center()) # 旋转90度 painter.rotate(self._rotateAnimation.currentValue() * 30) fm = self.fontMetrics() # 在变换坐标后的正中间画文字 w = fm.width(self.LoadingText) h = fm.height() painter.drawText(QRectF(0 - w * 2, 0 - h, w * 2 * 2, h * 2), Qt.AlignCenter, self.LoadingText) painter.restore()
def paintEvent(self, event): painter = QStylePainter(self) painter.rotate(self.buttonRotation) if self.buttonRotation == VerticalRotation.left_side: painter.translate(-1 * self.height(), 0) elif self.buttonRotation == VerticalRotation.right_side: painter.translate(0, -1 * self.width()) painter.drawControl(QStyle.CE_PushButton, self.getSyleOptions())
def paintEvent(self, event): """绘制事件""" painter = QStylePainter(self.clazz) width = self.clazz.width() / 2 height = self.clazz.height() / 2 if self.direction in ("clockwise", "anticlockwise"): painter.translate(width, height) # 设置中心为旋转的中心 painter.rotate(self.rotate) painter.translate(-width, -height) # 将原点复位 painter.drawControl(self.getControlElement(), self.getSyleOptions())
def paintEvent(self, event): p = QStylePainter(self) p.rotate(90) p.translate(0, - self.width()) opt = QStyleOptionButton() opt.initFrom(self) opt.text = self.text() if self.isChecked(): opt.state |= QStyle.State_On s = opt.rect.size().transposed() opt.rect.setSize(s) p.drawControl(QStyle.CE_PushButton, opt)
def paintEvent(self, event): p = QStylePainter(self) p.rotate(90) p.translate(0, -self.width()) opt = QStyleOptionButton() opt.initFrom(self) opt.text = self.text() if self.isChecked(): opt.state |= QStyle.State_On s = opt.rect.size().transposed() opt.rect.setSize(s) p.drawControl(QStyle.CE_PushButton, opt)
def paintEvent(self, event): painter = QStylePainter(self) if self.orientation == 'west': # 设置中心为旋转的中心 painter.translate(self.width() / 2, self.height() / 2) painter.rotate(90) # 将原点复位 painter.translate(-self.width() / 2, -self.height() / 2) # painter.translate(0, -1 * self.width()) elif self.orientation == 'east': painter.rotate(270) # painter.translate(-1 * self.height(), 0) else: raise TypeError painter.drawControl(QStyle.CE_PushButton, self.getSyleOptions())
def paintEvent(self, event): painter = QStylePainter(self) opt = QStyleOptionTab() for i in range(self.count()): self.initStyleOption(opt, i) painter.drawControl(QStyle.CE_TabBarTabShape, opt) painter.save() s = opt.rect.size() s.transpose() r = QRect(QPoint(), s) r.moveCenter(opt.rect.center()) opt.rect = r c = self.tabRect(i).center() painter.translate(c) painter.rotate(270) painter.translate(-c) painter.drawControl(QStyle.CE_TabBarTabLabel, opt) painter.restore()
def paintEvent(self, event): '''绘制事件''' if not self._timer.isActive(): return super(LinkButton, self).paintEvent(event) if self._direction in ("clockwise", "anticlockwise"): option = QStyleOptionButton() self.initStyleOption(option) option.text = "" # 不让其绘制文字 painter = QStylePainter(self) painter.drawControl(QStyle.CE_PushButton, option) # 变换坐标为正中间 painter.translate(self.rect().center()) painter.rotate(self._rotate) # 旋转 fm = self.fontMetrics() # 在变换坐标后的正中间画文字 w = fm.width(self.text()) h = fm.height() painter.drawText(QRectF(0 - w * 2, 0 - h, w * 2 * 2, h * 2), Qt.AlignCenter, self.text()) return super(LinkButton, self).paintEvent(event)
def paintEvent(self, event: QPaintEvent): painter = QStylePainter(self) if self.orientation == self.Vertical: painter.rotate(270) painter.translate(-1 * self.height(), 0) painter.drawControl(QStyle.CE_PushButton, self.getStyleOptions())