self.__zoom
永远不会大于10,让我们分析一下我指出的:最初的值是0,假设当它达到9的值时,它一个接一个地上升,现在表达式
else: self .__ zoom = 0
将导致值重置为0,因此在最佳情况下,值将从0变为9,并将被重置。所以这是不必要的。如果去掉,变量就不能减少,所以当delta为负时,值就应该减少。
使项目相对于
zoom_signal
setVisible()
方法。
def drawSomething(self):
path = QtGui.QPainterPath( )
path.moveTo(0, 0)
path.addRect(20, 20, 60, 60)
item = self._scene.addPath(path)
item.setPen(QtGui.QPen(QtGui.QColor(79, 106, 25), 1, QtCore.Qt.SolidLine, QtCore.Qt.FlatCap, QtCore.Qt.MiterJoin))
item.setBrush(QtGui.QColor(122, 163, 39))
self.zoom_signal.connect(item.setVisible)
def wheelEvent(self, event):
if event.angleDelta().y() > 0:
factor = 1.25
self.__zoom += 1
else:
factor = 0.8
self.__zoom -= 1
self.scale(factor, factor)
self.zoom_signal.emit(self.__zoom < 10)