Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: teromin от Март 01, 2011, 22:00



Название: Перерисовка QGraphicsItem
Отправлено: teromin от Март 01, 2011, 22:00
Доброго времени суток.

Пытаюсь писать программу, отображающую некоторые объекты QGraphicsItem на соответственно QGraphicsScene. Часть из них рисуется прямо в конструкторе - с этим проблемы нету. В чем собственно вопрос - когда я рисую QGraphicsItem уже после запуска программы(получаю соответствующий сигнал), он очень плохо отображается - по факту отрисовывается малюсенький клочок. Если увеличить масштаб QGraphicsScene отдельным методом - ну или вообще любым способом насильно перерисовать - все становится замечательно. А так чтобы сразу рисовался корректно - почему-то не получается.
item.update(); - пробовал, никакого эффекта.



Спасибо, с уважением, teromin.


Название: Re: Перерисовка QGraphicsItem
Отправлено: teromin от Март 01, 2011, 22:29
Кажется, нашел решение проблемы. Напишу тут, вдруг кому еще понадобится :)

Моя ошибка была в том, что я применял update() в области видимости QGraphicsView, а надо было применять к создаваемому в этом QGraphicsView QGraphicsItem'у. Соответственно строчка вида
scene->update(item->boundingRect());
все как надо обновила.


С уважением, teromin.