如何添加缩放到图形视图和屏幕的对象?

2024-05-29 09:41:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试制作一个PyQt5应用程序,用户可以点击一个图形视图窗口来放置一个矩形。我设法用fitInView方法缩放窗口,这很好,但是每当窗口大小改变时,新放置对象的相对大小也会改变。我怎样才能使它与窗口/屏幕/图形视图大小相关?我试着使用场景宽度,但是当调整窗口大小时,它在比例和位置上做了一些奇怪的事情。在

这是我在主窗口的课程。gv是图形视图,Ui\u MainWindow来自QtDesigner。在

class Window(Ui_MainWindow, QMainWindow):
    def __init__(self):
        super().__init__()
        self.setupUi(self)

        self.scene = QGraphicsScene()
        self.scene.setSceneRect(QRectF(0, 0, 100, 100))
        self.gv.setScene(self.scene)
        self.gv.fitInView(0, 0, 100, 100, Qt.KeepAspectRatio)

    def resizeEvent(self, e):
        self.gv.fitInView(0, 0, 100, 100, Qt.KeepAspectRatio)

下面是我的自定义图形视图类:

^{pr2}$

作为一个附带的问题,我目前是否正在按照建议进行操作?比如使用fitInView和maptosene等?在

另外,当我设置场景矩形时,我应该选择什么值来代替100?那是武断的。在

编辑:通过使用graphics view width作为基本变量,我设法实现了与我想要的类似的结果,如上面代码中的注释所示。但是,我现在有一个问题,如果你调整窗口的大小,它会显示以前不可见的场景区域。有没有一种方法可以拉伸场景或类似的方法来确保它总是充满图形视图?在


Tags: 方法self视图图形uiinitdef场景

热门问题