matplotlib画了个图,放到QGraphicsView里面

img

    from PyQt5.QtWidgets import QGraphicsScene
    from PyQt5.QtCore import Qt

    # 创建一个场景,将窗口放置到场景中,将场景放置到graphicsView控件
    self.scene = QGraphicsScene()  # 创建一个场景
    self.scene.addWidget(F)  # 将图形元素添加到场景中

    self.graphicsView.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
    self.graphicsView.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
    self.graphicsView.setScene(self.scene)  # 将创建添加到图形视图显示窗口

我用matplotlib画了个图,放到pyqt5中QGraphicsView里面,图像放大后,左、上边距不变,一直向右、下边延伸,我想把图向左边,向上面移动点;或者图像放大后一直居中,请赐教下,万分感谢

以下答案由GPT-3.5大模型与博主波罗歌共同编写:
可以通过设置场景的中心点来实现图像在放大后居中显示,代码如下:

# 获取graphicsView的宽和高以及放大倍数
width = self.graphicsView.width()
height = self.graphicsView.height()
scale = 2  # 假设放大2倍

# 获取图像的宽和高
data_w, data_h = F.get_size_inches() * F.dpi

# 计算场景的中心点
center_x = data_w / 2 * scale
center_y = data_h / 2 * scale

# 设置场景的中心点
self.scene.setSceneRect(-center_x, -center_y, data_w * scale, data_h * scale)
self.graphicsView.setScene(self.scene)

上述代码中,假设图像放大了两倍(scale = 2),计算出放大后的宽和高(data_w * scale, data_h * scale),然后通过设置场景的左上角坐标(-center_x, -center_y)和大小,使图像居中显示(setSceneRect())。最后将场景设置给图形视图。

如果想将图像向上、左移动一定的像素,可以将-center_x-center_y修改为相应的数值即可。

希望能够解决您的问题。
如果我的回答解决了您的问题,请采纳!