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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QGraphicsItem и BoundingRect  (Прочитано 4843 раз)
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.042 секунд. Запросов: 21.