Как правильно задать координаты? |
Здравствуйте, гость ( Вход | Регистрация )
Как правильно задать координаты? |
toni.lobster |
23.11.2014, 14:16
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 2 Регистрация: 23.9.2014 Пользователь №: 4231 Спасибо сказали: 0 раз(а) Репутация: 0 |
Задача - нарисовать нотный лист.
есть 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 пункта - нота добавляется в позицию курсора и при этом она связана с нотоносцем, с которым движется и масштабируется. Есть конечно вариант все время учитывать координаты нотоносца относительно листа и вносить поправки при добавлении ноты, но может быть есть что-то проще? Спасибо! |
|
|
lanz |
23.11.2014, 17:35
Сообщение
#2
|
Старейший участник Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: 8 |
Смотрите семейство функций mapTo/From, они пересчитывают координаты с учетом всех трансформаций.
http://qt-project.org/doc/qt-4.8/qgraphics...l#mapFromParent |
|
|
Текстовая версия | Сейчас: 29.11.2024, 2:14 |