Esempio n. 1
0
 def paintEvent(self, ev):
     if self.mouse_over:
         p = QStylePainter(self)
         tool = QStyleOption()
         tool.initFrom(self)
         tool.rect = self.rect()
         tool.state = QStyle.StateFlag.State_Raised | QStyle.StateFlag.State_Active | QStyle.StateFlag.State_MouseOver
         p.drawPrimitive(QStyle.PrimitiveElement.PE_PanelButtonTool, tool)
         p.end()
     return QLabel.paintEvent(self, ev)
Esempio n. 2
0
 def paintEvent(self, ev):
     painter = QStylePainter(self)
     opt = QStyleOptionToolButton()
     self.initStyleOption(opt)
     text = opt.text
     opt.text = ''
     opt.icon = QIcon()
     s = painter.style()
     painter.drawComplexControl(QStyle.ComplexControl.CC_ToolButton, opt)
     if s.styleHint(QStyle.StyleHint.SH_UnderlineShortcut, opt, self):
         flags = self.text_flags | Qt.TextFlag.TextShowMnemonic
     else:
         flags = self.text_flags | Qt.TextFlag.TextHideMnemonic
     fw = s.pixelMetric(QStyle.PixelMetric.PM_DefaultFrameWidth, opt, self)
     opt.rect.adjust(fw, fw, -fw, -fw)
     w = opt.iconSize.width()
     text_rect = opt.rect.adjusted(w, 0, 0, 0)
     painter.drawItemText(text_rect, flags, opt.palette, self.isEnabled(), text)
     fm = QFontMetrics(opt.font)
     text_rect = s.itemTextRect(fm, text_rect, flags, self.isEnabled(), text)
     left = text_rect.left() - w - 4
     pixmap_rect = QRect(left, opt.rect.top(), opt.iconSize.width(), opt.rect.height())
     painter.drawItemPixmap(pixmap_rect, Qt.AlignmentFlag.AlignLeft | Qt.AlignmentFlag.AlignVCenter, self.icon().pixmap(opt.iconSize))
Esempio n. 3
0
 def paintEvent(self, ev):
     p = QStylePainter(self)
     p.drawPrimitive(QStyle.PrimitiveElement.PE_IndicatorToolBarSeparator,
                     self.style_option())
Esempio n. 4
0
 def paintEvent(self, ev):
     shown = self.button.isChecked()
     ls = self.fm.lineSpacing()
     painter = QStylePainter(self)
     if self.mouse_over:
         tool = QStyleOption()
         tool.initFrom(self)
         tool.rect = self.rect()
         tool.state = QStyle.StateFlag.State_Raised | QStyle.StateFlag.State_Active | QStyle.StateFlag.State_MouseOver
         painter.drawPrimitive(QStyle.PrimitiveElement.PE_PanelButtonTool,
                               tool)
     painter.drawText(
         0, 0, self.width(), ls,
         Qt.AlignmentFlag.AlignCenter | Qt.TextFlag.TextSingleLine,
         self.text)
     text = _('Hide') if shown else _('Show')
     f = self.font()
     f.setBold(True)
     painter.setFont(f)
     painter.drawText(
         0,
         self.height() - ls, self.width(), ls,
         Qt.AlignmentFlag.AlignCenter | Qt.TextFlag.TextSingleLine, text)
     x = (self.width() - ICON_SZ) // 2
     y = ls + (self.height() - ICON_SZ - 2 * ls) // 2
     pmap = self.bright_icon if shown else self.dull_icon
     painter.drawPixmap(x, y, pmap)
     painter.end()