【发布时间】:2011-05-05 12:08:47
【问题描述】:
我在 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 存在......所以这很糟糕。
非常感谢!
【问题讨论】:
标签: qt pyqt qgraphicsview