如何在不改变位置的情况下缩放QGraphicsItem

时间:2014-07-11 13:26:46

标签: qt pyside transformation qgraphicsitem

我有QGraphicsRect动态更改其高度。我想在高度改变后将其高度标准化为1。如果我尝试应用QTransformscale()函数,y的{​​{1}}位置也会发生变化,如果其QGraphicsRect位置不是0。 / p>

我尝试在应用缩放之前将y移回场景的原点,但它没有帮助。有什么想法吗?

下面的最小工作示例。 (按按钮更改QGraphicsRect的高度)。如果问题得到解决,QRectItem上边缘和下边缘应始终位于红线上。

QGraphicsRect

1 个答案:

答案 0 :(得分:0)

几天后,我在IRC的一些人的帮助下找到了解决方案。转换矩阵必须是:

trans.setMatrix(1,           trans.m12(), trans.m13(),
                trans.m21(), height,      trans.m23(),
                trans.m31(), -height * self.rectY + self.rectY, 1)