Russian Qt Forum
Сентябрь 30, 2024, 14:35 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Учет областей вне boundingRect у наследника QGraphicsItem.  (Прочитано 3942 раз)
alexman
Гость
« : Октябрь 18, 2011, 15:56 »

1. Есть наследник от QGraphicsItem - некоторый полигон (привожу пример одного элемента; на самом деле различных наследников туча).
2.
Код:
QRectF QGraphicsItem::boundingRect () const
{
     return m_polygon.boundingRect();
}
3. Рисовка включает рисовку фигуры + рисовку областей около узловых точек m_polygon (есть некоторый квадратик, кружочек, не важно). Важно что при изменении масштаба область размеров не меняет!
4. Проблема заключается в следующем: данные области могут выходить за пределы boundingRect и из-за этого возникает ряд проблем (то область обрезается, то не рисуется, появляются всякие артефакты,...).

Как это дело можно обрулить? Конечно есть вариант при изменении масштаба вычислять boundingRect с учетом областей, но это гемор, так как объектов куча.

ЗЫ ранее в качестве вьюпорта был установлен QGLWidget и проблемы не было. Теперь QWidget.
Записан
kamre
Частый гость
***
Offline Offline

Сообщений: 233


Просмотр профиля
« Ответ #1 : Октябрь 18, 2011, 19:00 »

ранее в качестве вьюпорта был установлен QGLWidget и проблемы не было. Теперь QWidget.
Значит раньше всегда все перерисовывалось, а теперь делается перерисовка с оптимизацией по bounding box. Можно включить опять полную перерисовку.
Записан
alexman
Гость
« Ответ #2 : Октябрь 19, 2011, 08:16 »

Явно не вызывал всю перерисовку!

Код:
Можно включить опять полную перерисовку.
Как? update: думаю это не очень хорошая идея.
« Последнее редактирование: Октябрь 19, 2011, 09:02 от alexman » Записан
kamre
Частый гость
***
Offline Offline

Сообщений: 233


Просмотр профиля
« Ответ #3 : Октябрь 19, 2011, 10:07 »

Как?
http://doc.qt.nokia.com/latest/qgraphicsview.html#ViewportUpdateMode-enum
Записан
alexman
Гость
« Ответ #4 : Октябрь 19, 2011, 11:02 »

В общем ясно. Ничего нового( спасибо!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.134 секунд. Запросов: 23.