Я не совсем новичок в Qt, но есть несколько вещей, которых я не знаю... Я программирую на Python, но не стесняйтесь публиковать свои ответы на ЛЮБОМ языке.
Итак, у меня есть несколько QGraphicsItem (ов), расположенных внутри QGraphicsScene, сцена просматривается с помощью обычного QGraphicsView. Все нормально.
Моя сцена очень большая, 10 000 х 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) в большом цикле, но движение слишком быстрое, как и centerOn.
Я попытался поставить некоторое ожидание с time.sleep(0.01) между переводом, но окна блокируются до тех пор, пока цикл не существует... так что это плохо.
Большое тебе спасибо !