Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как правильно задать координаты?
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Система рисования. Печать
toni.lobster
Задача - нарисовать нотный лист.

есть 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
Смотрите семейство функций mapTo/From, они пересчитывают координаты с учетом всех трансформаций.
http://qt-project.org/doc/qt-4.8/qgraphics...l#mapFromParent
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.