我有一个QGraphicsScene,上面有几个可移动的项目。当我将一个项目拖动到场景边框时,场景的大小会增加(没关系,它会增加),并且会出现滚动条(也没关系)。
但即使移动项目超出窗口边框几个像素,场景大小也会一次增加大约两倍。
这是一个小型演示(原谅我的PyQt):
import sys
from PyQt5 import QtWidgets, QtGui, QtCore
from PyQt5.QtWidgets import QGraphicsItem, QGraphicsTextItem, QGraphicsRectItem
if __name__ == "__main__":
#########################################
sys._excepthook = sys.excepthook
def exception_hook(exctype, value, traceback):
sys._excepthook(exctype, value, traceback)
sys.exit(1)
sys.excepthook = exception_hook
##########################################
app = QtWidgets.QApplication(sys.argv)
view = QtWidgets.QGraphicsView()
view.setRenderHint(QtGui.QPainter.Antialiasing)
view.setMouseTracking(True)
view.setDragMode(QtWidgets.QGraphicsView.RubberBandDrag)
scene = QtWidgets.QGraphicsScene()
rect_item = QGraphicsRectItem(-50, -50, 100, 100)
rect_item.setFlags(QGraphicsItem.ItemIsSelectable | QGraphicsItem.ItemIsFocusable | QGraphicsItem.ItemIsMovable)
scene.addItem(rect_item)
rect_item2 = QGraphicsRectItem(-50, -50, 100, 100)
rect_item2.setFlags(QGraphicsItem.ItemIsSelectable | QGraphicsItem.ItemIsFocusable | QGraphicsItem.ItemIsMovable)
scene.addItem(rect_item2)
rect_item2.setPos(-120, -120)
view.setScene(scene)
view.showMaximized()
sys.exit(app.exec_())
您应该将方块拖到左边框,当项目到达窗口边框时,大小会增加两倍。
你不能告诉我,我该如何解决?