我在 Qt 中并不是真正的新手,但有一些我不知道的事情......我正在使用 Python 编程,但请随时用任何语言发布您的答案。
所以,我有几个QGraphicsItem (s),位于QGraphicsScene内,使用普通QGraphicsView查看场景。一切正常。
我的场景非常大,10,000 x 10,000 像素,所有图形项目都分散在周围。
例如 :
# 创建场景对象。 场景 = QtGui.QGraphicsScene() 场景.setSceneRect(0, 0, 10000, 10000) # 创建视图对象。 视图 = QtGui.QGraphicsView() view.setScene(场景) # 将一些对象添加到场景中。 # 场景.addItem(...) # ... # 项目列表。 项目 = 场景。项目() # 这就是我以项目为中心的方式。 view.centerOn(some_item) view.fitInView(some_item, Qt.KeepAspectRatio)
我的问题是,如何使用类似于centerOn的东西将视图集中在每个项目上,但又很顺利?
目前,centerOn 在下一个项目上运行很快,我想慢慢移动它,也许使用QPropertyAnimation 和缓动曲线?
我尝试在一个大圆圈中使用view.translate(1, 1)将视图移动到下一个项目,但移动速度太快,就像 centerOn 一样。
我试图在翻译之间用time.sleep(0.01)进行一些等待,但是窗口会阻塞,直到 cicle 存在......所以这很糟糕。
非常感谢 !