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

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

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