Я унаследовал от QGraphicsObject
и создал новый класс, который имеет растровое изображение и устанавливает его исходную точку преобразования:
setTransformOriginPoint(boundingRect().center());
Но когда я звоню setRotation()
на мой класс (который добавляется к QGraphicsView
используя сцену), вращение не использует центр в качестве привязки вращения. Как я могу установить центр, чтобы быть якорем вращения? Спасибо !
Дополнительная информация: вызов метода setRotation () вне функции sceneEvent, с которой он работает, но внутри сцены sceneEvent, после жеста повышения, точка начала не работает.
Нарисуйте растровое изображение в QRect(0, 0, pixmap.width(), pixmap.height()
, Используйте этот прямоугольник и для ограничивающего прямоугольника. использование setPos
перемещать предмет по сцене. использование setTransformOriginPoint(pixmap.width() / 2, pixmap.height() / 2)
установить начальную точку. Эти координаты находятся в координатах элемента, поэтому они должны указывать на центр растрового изображения независимо от положения элемента.
Других решений пока нет …