Я не новичок в Qt, но есть несколько вещей, о которых я не знаю ... Я программирую на Python, но не стесняйтесь публиковать свои ответы на ЛЮБОМ языке.
Итак,У меня есть несколько QGraphicsItem (s), расположенных внутри QGraphicsScene , сцена просматривается с обычным QGraphicsView .Все нормально.
Моя сцена очень большая, 10 000 x 10 000 пикселей, все графические элементы разбросаны вокруг.
Например:
# Creating Scene object.
scene = QtGui.QGraphicsScene()
scene.setSceneRect(0, 0, 10000, 10000)
# Creating View object.
view = QtGui.QGraphicsView()
view.setScene(scene)
# Adding some objects to scene.
# scene.addItem(...)
# ...
# The list of items.
items = scene.items()
# This is how i center on item.
view.centerOn(some_item)
view.fitInView(some_item, Qt.KeepAspectRatio)
Мой вопрос такой: как можно ли центрировать вид на каждом элементе, используя что-то похожее на centerOn , но плавно?
В настоящее время centerOn идет БЫСТРО на следующем элементе, я хочу переместитьЭто небрежно, может быть, используя QPropertyAnimation с кривой замедления?
Я пытался переместить представление к следующему элементу, используя view.translate (1, 1) в большомcicle, но движение слишком быстрое, точно так же как centerOn.
Я пытался поместить некоторое ожидание с time.sleep (0.01) между переводами, но блоки окон до тех пор, пока не существует cicle... так что это плохо.
Большое спасибо!