Название: Проблема при обновлении сцены Отправлено: skaz54 от Апрель 28, 2013, 20:47 Здравствуйте.
Имеется QGraphicsScene и QGraphicsView для отображения сцены. Это сторонние классы. На основе класса отображения создал свой класс и размещаю на сцене свои графические объекты, в том числе и графические стандартные, типа QGraphicsRectItem и т.д. Вывод своих графических объектов осуществляю в обработке метода paintEvent. Рисование проходит нормально и правильно при нанесении объектов и при обновлении всего viewport. Но, если изменить размеры (положение) графического объекта, то в метод paintEvent приходит событие, в котором указывается область изменения сцены, равной новому размеру (положению) объекта, а область, где ранее находился объект, не изменяется, т.е. остается "след" этого объекта. Попытка изменить область перерисовки в методе paintEvent ни к чему не приводит. Как быть в этом случае? Может быть есть другие методы, которые надо обрабатывать в такой ситуации? Подскажите, пожалуйста. Спасибо. Название: Re: Проблема при обновлении сцены Отправлено: _OLEGator_ от Апрель 28, 2013, 22:48 Правильно возвращать значение в переопределенных функциях
Код И понимать, что есть еще Код
Название: Re: Проблема при обновлении сцены Отправлено: skaz54 от Апрель 28, 2013, 23:08 Не понятно, причем здесь эти функции.
Последовательность операций следующая: 1. Текущий размер объекта rOld 2. Вычисляю новый размер объекта QRect rNew = QRect(x, y, w, h). rNew меньше rOld 3. Изменяю значение размера объекта функцией setRect(rNew) 4. Получаю событие paintEvent с прямоугольником перерисовки rNew 5. При обработки события paintEvent обновляю фон в области rNew, но оставшаяся часть rOld не обновляется, как бы я не расширял область обновления в в методе paintEvent Вот в чем дело Название: Re: Проблема при обновлении сцены Отправлено: _OLEGator_ от Апрель 29, 2013, 08:45 Потому что если ты определяешь свои графические элементы - не достаточно переопределить только отрисовку объекта.
А вообще показывай код, в телепатию играть не буду. |