我想绘制我的自定义按钮,其尺寸为20x20像素。我创建了一个继承QPushButton的类,我已覆盖的paintEvent方法有下面这段代码:PySide QPainter.drawRect()与QBrush偏移问题
painter = QtGui.QPainter(self)
x = self.rect().x()
y = self.rect().y()
width = self.rect().width()
height = self.rect().height()
painter.setBrush(QBrush(QColor(170, 97, 112)))
painter.drawRect(x, y, width, height)
这是我所得到的(在Photoshop中编辑):
你可以清楚地看到左上角的x和y尺寸都有1个像素偏移量。
我想知道为什么会发生这种情况。我可以通过从x和y中提取1个像素并将1个像素添加到宽度和高度来消除此问题,因此它们的值为:x = -1; y = -1;宽度= 21;身高= 21.
但是,这只是让我感到奇怪。我不知道这是否是Qt的问题(或者仅仅是PySide),或者我不明白。
幽州您的自定义按钮是在20×20规模以上但图像显示了一个矩形22×22。那么上面图片的哪一部分实际上是*您的*按钮? –
@ G.M。不,它实际上是20x20。我用红色笔刷标记了按钮(从0到20)。图像本身就是这样裁剪的。对不起,如果这是以任何方式混淆。 – Makal