python - QGraphicsView 在像素图缩放后不会调整大小,而像素图不再居中

标签 python pyqt qgraphicsview qgraphicsscene qpixmap

我创建了一个 QGraphicsView 并在其中创建了一个 QGraphicsScene。我在 QGraphicsScene 中加载像素图。实际上它是一个继承的QGraphicsScene,它实现了一个wheelEvent以实现放大/缩小功能。缩放功能根据滚轮的旋转将像素图向上或向下缩放 10%。缩放工作正常,但是 QGraphicsView 大小或 QGraphicsScene 大小获取尝试的旋转的最大大小的值,并且不再居中。例如,如果我使用启用了滚动条的 wso 来放大它,那么如果我缩小它,滚动条仍然会启用并且像素图位于左上角。 有什么建议吗?

编辑:QGraphicsView的缩放功能创建了低质量的像素图,这就是我不使用它的原因。我添加了一个缩放的像素图,并且在每次旋转时我都会再次缩放它并投影到 GraphicsView。然而,如前所述,GraphicsView 或 QGraphicsScene 的大小存在调整大小问题。

最佳答案

经过很长一段时间,我找到了解决方案。问题是场景不符合像素图的大小。例如,当我滚动并创建一个大的像素图,以便需要滚动条时,如果我滚动并创建一个小的像素图,滚动条仍然在那里,导致场景的大小没有改变。不过,我通过在添加新的像素图后在场景中设置一个矩形找到了解决方案。因此,在wheelEvent (self, event)函数中,通过self.clear()清除场景并添加新的缩放像素图后,场景的大小需要也要改变。为此,我使用了以下命令,其中 self.__size 是缩放后的像素图的新大小。

self.setSceneRect(QtCore.QRectF(0.0, 0.0, self.__size.width(), self.__size.height()))

关于python - QGraphicsView 在像素图缩放后不会调整大小,而像素图不再居中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23246246/

相关文章:

python - 如何阅读小部件的样式表?

python - pyqt:如何获得对 QFileDialog 中按钮的一致访问

c++ - QT 使用 QGraphics 在一条直线上绘制椭圆或三角形

python - 如何获取QGraphicsItem坐标系中的光标点击位置?

python - 与单独使用 lxml 相比,使用 Beautiful Soup 解析 XML 有什么好处吗?

python - 为什么 math.pi 和 math.e 常量在 Python 中写成小写?

python - "Pump GTK messages?"是什么意思

python - 循环帮助: it doesn't wait for loadFinished SIGNAL in PyQt4

python - 如何正确缩放 QGraphicsScene

python - 如何修剪 pandas 列中的字符串和字符串列表