内部SidebarButton.paintEvent(),我想在位置x = 0,y = 0的绘制的pixmap。 当保证金:0像素设置,能正常工作。 但是,如果我增加例如边距来30PX,drawPixmap(0,0,...)中的余量内涂料。 我预计,如果我设置上边距,drawPixmap(0,0,...)开始于(0,30)。
所以我的问题是:我怎么能画在正确的位置? 一个简单的解决办法是drawPixmap(0,getTopMargin()+ getTopPadding(),...),但我找不到它让我对上边距和其他的CSS值的任何功能。
的BaseButton从QPushButton得出:
class SidebarButton(BaseButton):
def __init__(self, parent):
super().__init__(parent)
def paintEvent(self, e):
super().paintEvent(e)
p = QPainter(self)
if self._bgimage is not None:
pix = self.prepareIcon()
# p.setRenderHint(QPainter.HighQualityAntialiasing);
p.drawPixmap(0, 0,
pix.scaled(QSize(self.width(), self.width()) / 1.8,
Qt.IgnoreAspectRatio,
Qt.SmoothTransformation))
编辑:
访问从样式表填充在QT此建议使用contentsRect()来获取内容的矩形。 但contentsRect()。顶()总是返回0,但我认为它应该返回30盒模型由QPushButton支持,顺便说一句。