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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QGraphicsItem и BoundingRect  (Прочитано 4900 раз)
evilguard
Гость
« : Март 08, 2007, 21:59 »

В общем у меня рисуется картинка в QGraphicsItem, но мне надо добавить возможность не выводить ее всю, а обрезать(то есть границы прямоугольной рамки менять). Если менять ее в Bounding Rect, то "обрезанные части" изображения будут выводиться все равно, просто они будут за пределами QGraphicsItem. Как сделать нормальное обрезание?
Записан
Вячеслав
Гость
« Ответ #1 : Март 08, 2007, 23:24 »

IMHO в paint'e отслеживать ...
QStyleOptionGraphicsItem -> QRectF QStyleOptionGraphicsItem::exposedRect
Записан
evilguard
Гость
« Ответ #2 : Март 09, 2007, 22:11 »

Че-то я торможу, а как задавать значение QRectF QStyleOptionGraphicsItem::exposedRect?
Пробовал в paint()
Код:

option->exposedRect = QRectF(0,0,width/2,height/2);

Не получается Грустный
Записан
Вячеслав
Гость
« Ответ #3 : Март 09, 2007, 22:15 »

Код:

QRectF QStyleOptionGraphicsItem::exposedRect
This variable holds the exposed rectangle, in item coordinates.
Make use of this rectangle to speed up item drawing when only parts of the item are exposed. If the whole item is exposed, this rectangle will be the same as QGraphicsItem::boundingRect().
Если мне мое знание буржуйского не изменяет - то exposedRect содержит область итема для отрисовки .....
Записан
evilguard
Гость
« Ответ #4 : Март 10, 2007, 00:43 »

А, разобрался, (перейдем на ты Подмигивающий )  спасибо, что навел на мысль, хоть exposedRect и не совсем то.
Чтобы обрезать, то что не нужно, надо использовать:
Код:

painter->setClipRect(rect);

Где rect - прямоугольник, в котором изображение останется, а все остальное не будет отображаться.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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