pyqt6: Use QStylePainter for separators

In pyqt6 QApplication::style() returns QCommonStyle instead of the proxy
calibre style I install using C++. QStylePainter gets around that.
This commit is contained in:
Kovid Goyal 2021-12-05 21:50:09 +05:30
parent 56dd01a591
commit cb07ca7b70
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C

View File

@ -4,8 +4,8 @@
from qt.core import (
QPainter, QPoint, QRect, QSize, QSizePolicy, QStyle, QStyleOption, Qt, QToolBar,
QToolButton, QWidget, pyqtSignal
QPoint, QRect, QSize, QSizePolicy, QStyle, QStyleOption, QStylePainter, Qt,
QToolBar, QToolButton, QWidget, pyqtSignal
)
@ -26,8 +26,8 @@ class Separator(QWidget):
return QSize(width, int(self.devicePixelRatioF() * self.desired_height))
def paintEvent(self, ev):
p = QPainter(self)
self.style().drawPrimitive(QStyle.PrimitiveElement.PE_IndicatorToolBarSeparator, self.style_option(), p, self)
p = QStylePainter(self)
p.drawPrimitive(QStyle.PrimitiveElement.PE_IndicatorToolBarSeparator, self.style_option())
class Button(QToolButton):