LINUX.ORG.RU

Чем можно вывести текст в qgraphicsview или qgraphicsscene?

 , ,


0

1

... в экранных координатах. У меня окошко qgraphicsview отображает часть большой сцены qgraphicsscene и постоянно перемещается по ней. В определенной части окна мне нужно выводить текст. Но я нашел только способы рисовать текст в координатах сцены. Можно конечно при каждом перемещении пересчитывать нужную позицию из экранных координат в координаты сцены и перерисовывать текст на новом месте, но мне кажется должен быть и другой способ.

Это обыкновенный виджет. Унаследуйся, перегружай paintEvent, вызывай родительский paintEvent в нём, а потом извращайся как вздумается.

Ещё костыль: перемещай не view, а scene. И добавь текстовый элемент, который не перемещается.

schizoid ★★★ ()
Ответ на: комментарий от schizoid

Ещё костыль: перемещай не view, а scene.

А можно чуть по подробней? Сейчас я делаю так:

view->centerOn(x, y);

И добавь текстовый элемент, который не перемещается.

Это какое то свойство QGraphicsTextItem?

akinator ★★ ()
Ответ на: комментарий от akinator

QGraphicsItem::setPos

Для всех «двигающихся» элементов вызывай этот метод, а для своего HUD-а не вызывай. Костыль, ещё какой.

Можно ещё, ЕМНИП, сделать фоновый graphicsitem-родитель (прозрачный или ещё какой), на котором лепить свою сцену, и двигать его, а дети-айтемы подтянутся автоматически. И, соответственно, HUD сделать сиротой, чтоб не двигался.

schizoid ★★★ ()
Ответ на: комментарий от schizoid

А, не, я лучше paintEvent перенаследую. Спасибо за ответы.

akinator ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.