Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使控件鼠标在QGraphicsView中缩放_Python_Qt_Pyqt_Qgraphicsview - Fatal编程技术网

Python 使控件鼠标在QGraphicsView中缩放

Python 使控件鼠标在QGraphicsView中缩放,python,qt,pyqt,qgraphicsview,Python,Qt,Pyqt,Qgraphicsview,我有一个QGraphicsView,可以显示图像、放大和缩小。代码如下: class MyQGraphicsView(QtGui.QGraphicsView): def __init__ (self, parent=None): super(MyQGraphicsView, self).__init__ (parent) def wheelEvent(self, event): # Zoom Factor zoomInFactor =

我有一个
QGraphicsView
,可以显示图像、放大和缩小。代码如下:

class MyQGraphicsView(QtGui.QGraphicsView):

    def __init__ (self, parent=None):
        super(MyQGraphicsView, self).__init__ (parent)

    def wheelEvent(self, event):
     # Zoom Factor
        zoomInFactor = 1.25
        zoomOutFactor = 1 / zoomInFactor

    # Set Anchors
        self.setTransformationAnchor(QtGui.QGraphicsView.NoAnchor)
        self.setResizeAnchor(QtGui.QGraphicsView.NoAnchor)

    # Save the scene pos
        oldPos = self.mapToScene(event.pos())

    # Zoom
        if event.delta() > 0:
            zoomFactor = zoomInFactor
        else:
            zoomFactor = zoomOutFactor
        self.scale(zoomFactor, zoomFactor)

    # Get the new position
        newPos = self.mapToScene(event.pos())

    # Move scene to old position
        delta = newPos - oldPos
        self.translate(delta.x(), delta.y())
我想做的是限制放大或缩小。图像大小按如下方式缩放
qgraphicsview
大小:

        scene = QtGui.QGraphicsScene()
        pixmap = QtGui.QPixmap('pic.jpeg')
        w = self.graphicsView.width()
        h = self.graphicsView.height()
        scene.addPixmap(pixmap.scaled(QtCore.QSize(w,h)))
        self.graphicsView.setScene(scene)
如您所见,图像大小相等
qgraphicsview
size。在这个位置,我不希望用户缩小图像。仅当用户放大图像时,才可以进行缩小,直到图像大小等于
qgraphicsview
size。这不是我控制的。你能给我提个建议吗