@mrjj Thank you very much! I have researched and been able to do what I was looking for. Here's what I did:
def drawPrimitive(self, element, opt, painter, widget):
if element == QStyle.PE_PanelButtonTool:
pressed = (opt.state & STATE_SUNKEN | opt.state & STATE_ON)
color = QColor("#323232")
if pressed:
color = QColor("#222222")
elif opt.state & STATE_ENABLED and opt.state & STATE_MOUSEOVER:
color = QColor("#4e4e4e")
painter.fillRect(opt.rect, color)
elif element == QStyle.PE_IndicatorArrowDown or \
element == QStyle.PE_IndicatorArrowUp:
r = opt.rect
size = min(r.height(), r.width())
image = QImage(size, size, QImage.Format_ARGB32_Premultiplied)
image.fill(Qt.transparent)
image_painter = QPainter(image)
image_painter.setPen(QColor("#bdbfc0"))
image_painter.setBrush(QColor("#bdbfc0"))
polygon = QPolygon()
polygon.append(QPoint(0, r.width() * 0.5))
if element == QStyle.PE_IndicatorArrowDown:
polygon.append(QPoint(size, size * 0.6))
polygon.append(QPoint(size / 2, size * 0.1))
else:
polygon.append(QPoint(size, size * 0.5))
polygon.append(QPoint(size / 2, size * 0.9))
image_painter.drawPolygon(polygon)
image_painter.end()
pixmap = QPixmap.fromImage(image)
painter.drawPixmap(r.x() + (r.width() - size) / 2,
r.y() + (r.height() - size) / 2, pixmap)
else:
QProxyStyle.drawPrimitive(self, element, opt, painter, widget)
Regards!