Как удобно пересчитать координаты?



  • Здравствуйте.

    Задача - нарисовать нотный лист.

    есть QGraphicsScene,
    есть QGraphicsRectItem - это страница(str)
    Есть QGraphicsRectItem - это нотоносец(staff), установлено staff.setParentItem(str), т.е при изменениях страницы нотоносцы меняются с ней. Нотоносец можно двигать по сцене.
    и есть QGraphicsEllipseItem- нота(note), должна добавляться на нотоносец по щелчку правой кнопки мыши. Координаты вычисляются note.setPos(event.scenePos()). и для нее ParentItem - это staff.

    НО есть проблема - если я двигаю staff по листу, то при вызове note.setParentItem координаты пересчитываются относительно staff, т.е если позиция курсора была в точке 10,10 на сцене, то при пересчете она станет 10,10 на нотоносце, что будет уже не под курсором.

    Мне надо сохранить 2 пункта - нота добавляется в позицию курсора и при этом она связана с нотоносцем, с которым движется и масштабируется.

    Есть конечно вариант все время учитывать координаты нотоносца относительно листа и вносить поправки при добавлении ноты, но может быть есть что-то проще?

    Спасибо.



  • Здравствуйте!

    Посмотрите функции с префиксом "map*" из "документации":http://qt-project.org/doc/qt-4.8/qgraphicsitem.html.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.