def paintEvent(base_button, event): painter = QStylePainter(base_button) painter.setRenderHint(QPainter.Antialiasing) option = QStyleOption() option.initFrom(base_button) x = option.rect.x() y = option.rect.y() height = option.rect.height() - 1 width = option.rect.width() - 1 gradient = BaseButtonStyle._gradient[NORMAL] offset = 0 if base_button.isDown(): gradient = BaseButtonStyle._gradient[DOWN] offset = 1 elif not base_button.isEnabled(): gradient = BaseButtonStyle._gradient[DISABLED] painter.setPen(base_button._pens_border) painter.drawEllipse(x + 1, y + 1, width - 1, height - 1) painter.setPen(base_button._pens_clear) painter.setBrush(gradient[OUTER]) painter.drawEllipse(x + 2, y + 2, width - 3, height - 2) painter.setBrush(gradient[INNER]) painter.drawEllipse(x + 3, y + 3, width - 5, height - 4) painter.setBrush(base_button._brush_clear) line_path = QPainterPath() line_path.moveTo(x + 8, y + 8) line_path.lineTo(x + 12, x + 12) line_path.moveTo(x + 12, y + 8) line_path.lineTo(x + 8, y + 12) painter.setPen(base_button._pens_border) painter.drawPath(line_path) glow_index = base_button._glow_index glow_pens = base_button._glow_pens if glow_index > 0: for index in range(3): painter.setPen(glow_pens[glow_index][index]) painter.drawPath(line_path) painter.setPen(glow_pens[glow_index][3]) painter.drawPath(line_path)
def paintEvent(base_button, event): painter = QStylePainter(base_button) painter.setRenderHint(QPainter.Antialiasing) option = QStyleOption() option.initFrom(base_button) x = option.rect.x() y = option.rect.y() height = option.rect.height() - 1 width = option.rect.width() - 1 radius = base_button._radius gradient = BaseButtonStyle._gradient[NORMAL] offset = 0 if base_button.isCheckable(): if base_button.isChecked(): gradient = BaseButtonStyle._gradient[DOWN] offset = 1 else: if base_button.isDown(): gradient = BaseButtonStyle._gradient[DOWN] offset = 1 elif not base_button.isEnabled(): gradient = BaseButtonStyle._gradient[DISABLED] painter.setBrush(base_button._brush_border) painter.setPen(base_button._pens_border) painter.drawRoundedRect(QRect(x + 1, y + 1, width - 1, height - 1), radius, radius) if base_button.isCheckable(): if base_button.isChecked(): painter.setPen(base_button._pens_clear) painter.setBrush(gradient[OUTER]) painter.drawRoundedRect( QRect(x + 1, y + 1, width - 1, height - 1), radius, radius) else: painter.setPen(base_button._pens_clear) painter.setBrush(gradient[OUTER]) painter.drawRoundedRect( QRect(x + 2, y + 2, width - 2, height - 2), radius, radius) else: if base_button.isDown(): painter.setPen(base_button._pens_clear) painter.setBrush(gradient[OUTER]) painter.drawRoundedRect( QRect(x + 1, y + 1, width - 1, height - 1), radius, radius) else: painter.setPen(base_button._pens_clear) painter.setBrush(gradient[OUTER]) painter.drawRoundedRect( QRect(x + 2, y + 2, width - 2, height - 2), radius, radius) painter.setBrush(gradient[INNER]) painter.drawRoundedRect(QRect(x + 3, y + 3, width - 3, height - 3), radius - 1, radius - 1) painter.setBrush(base_button._brush_clear) text = base_button.text() font = base_button.font() text_width = base_button._font_metrics.width(text) text_height = font.pointSize() text_path = QPainterPath() text_path.addText((width - text_width) / 2, height - ((height - text_height) / 2) - 1 + offset, font, text) glow_index = base_button._glow_index glow_pens = base_button._glow_pens alignment = (Qt.AlignHCenter | Qt.AlignVCenter) if base_button.isEnabled(): painter.setPen(base_button._pens_shadow) painter.drawPath(text_path) painter.setPen(base_button._pens_text) painter.drawText(x, y + offset, width, height, alignment, text) if glow_index > 0: for index in range(3): painter.setPen(glow_pens[glow_index][index]) painter.drawPath(text_path) painter.setPen(glow_pens[glow_index][3]) painter.drawText(x, y + offset, width, height, alignment, text) else: painter.setPen(base_button._pens_shadow_disabled) painter.drawPath(text_path) painter.setPen(base_button._pens_text_disabled) painter.drawText(x, y + offset, width, height, alignment, text)
def paintEvent(self, event): painter = QStylePainter(self) painter.setRenderHint(QPainter.Antialiasing) painter.setRenderHint(QPainter.TextAntialiasing) option = QStyleOption() option.initFrom(self) x = option.rect.x() y = option.rect.y() height = option.rect.height() - 1 width = option.rect.width() - 1 font = self.font() text = self.text() alignment = (Qt.AlignLeft | Qt.AlignVCenter) painter.setPen(self._pens_border) painter.setBrush(self._brush_border) painter.drawRoundedRect(QRect(x + 2, y + 2, 13, 13), 3, 3) if self.isEnabled(): painter.setPen(self._pens_shadow) painter.drawText(21, y + 2, width, height, alignment, text) painter.setPen(self._pens_text) painter.drawText(20, y + 1, width, height, alignment, text) else: painter.setPen(self._pens_shadow_disabled) painter.drawText(21, y + 2, width, height, alignment, text) painter.setPen(self._pens_text_disabled) painter.drawText(20, y + 1, width, height, alignment, text) painter.setPen(self._pens_clear) if self.isEnabled(): glow_brushes = self._glow_brushes else: glow_brushes = self._disabled_glow_brushes if self.checkState(): for index, pos, size, corner in zip(range(4), (2, 3, 4, 5), (13, 11, 9, 7), (4, 3, 3, 2)): painter.setBrush(glow_brushes[10][index]) painter.drawRoundedRect(QRect(x + pos, y + pos, size, size), corner, corner) glow_index = self._glow_index if glow_index > 0: for index, pos, size, corner in zip(range(4), (3, 4, 5, 6), (11, 9, 7, 5), (3, 3, 2, 2)): painter.setBrush(glow_brushes[glow_index][index]) painter.drawRoundedRect(QRect(x + pos, y + pos, size, size), corner, corner)
def paintEvent(base_button, event): painter = QStylePainter(base_button) painter.setRenderHint(QPainter.Antialiasing) option = QStyleOption() option.initFrom(base_button) x = option.rect.x() y = option.rect.y() height = option.rect.height() - 1 width = option.rect.width() - 1 radius = base_button._radius gradient = BaseButtonStyle._gradient[NORMAL] offset = 0 icon_offset = 3 # TODO: maybe we want set this as a property of the base button if base_button.isCheckable(): if base_button.isChecked(): gradient = BaseButtonStyle._gradient[DOWN] offset = 1 else: if base_button.isDown(): gradient = BaseButtonStyle._gradient[DOWN] offset = 1 elif not base_button.isEnabled(): gradient = BaseButtonStyle._gradient[DISABLED] painter.setBrush(base_button._brush_border) painter.setPen(base_button._pens_border) painter.drawRoundedRect(QRect(x + 1, y + 1, width - 1, height - 1), radius, radius) painter.setPen(base_button._pens_clear) painter.setBrush(gradient[OUTER]) painter.drawRoundedRect(QRect(x + 1, y + 1, width - 1, height - 1), radius, radius) painter.setBrush(gradient[INNER]) painter.drawRoundedRect(QRect(x + 2, y + 2, width - 2, height - 2), radius - 1, radius - 1) painter.setBrush(base_button._brush_clear) text = base_button.text() font = base_button.font() text_width = base_button._font_metrics.width(text) text_height = font.pointSize() text_path = QPainterPath() has_icon = base_button.icon() if has_icon: if base_button.text() == '' or base_button.text() is None: icon_size = max( min(height, width) - 2 * base_button._pad, base_button._min_size) painter.drawPixmap((width - icon_size) / 2, (height - icon_size) / 2, base_button.icon().pixmap(icon_size)) else: icon_size = max( min(height, width) - 2 * base_button._pad, base_button._min_size) painter.drawPixmap((width - icon_size - text_width) / 2, (height - icon_size) / 2, base_button.icon().pixmap(icon_size)) if has_icon: text_path.addText( (width - text_width + icon_size + icon_offset) / 2, height - ((height - text_height) / 2) - 1 + offset, font, text) else: text_path.addText( (width - text_width) / 2, height - ((height - text_height) / 2) - 1 + offset, font, text) glow_index = base_button._glow_index glow_pens = base_button._glow_pens alignment = (Qt.AlignHCenter | Qt.AlignVCenter) if base_button.isEnabled(): painter.setPen(base_button._pens_shadow) painter.drawPath(text_path) painter.setPen(base_button._pens_text) if has_icon: painter.drawText(x + ((icon_size + icon_offset) * 0.5), y + offset, width, height, alignment, text) else: painter.drawText(x, y + offset, width, height, alignment, text) if glow_index > 0: for index in range(3): painter.setPen(glow_pens[glow_index][index]) painter.drawPath(text_path) painter.setPen(glow_pens[glow_index][3]) if has_icon: painter.drawText(x + ((icon_size + icon_offset) * 0.5), y + offset, width, height, alignment, text) else: painter.drawText(x, y + offset, width, height, alignment, text) else: painter.setPen(base_button._pens_shadow_disabled) painter.drawPath(text_path) painter.setPen(base_button._pens_text_disabled) if has_icon: painter.drawText(x + ((icon_size + icon_offset) * 0.5), y + offset, width, height, alignment, text) else: painter.drawText(x, y + offset, width, height, alignment, text)
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(90) painter.translate(-c) painter.drawControl(QStyle.CE_TabBarTabLabel, opt) painter.restore()