如何在pos绘制的QPixmap(0,0),包括余量/填充尺寸(How to draw a QPix

2019-09-28 05:52发布

内部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支持,顺便说一句。

文章来源: How to draw a QPixmap at pos(0, 0) including margin/padding sizes
标签: qt pyqt qt5 pyqt5