Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: alixandra от Май 22, 2006, 00:02



Название: QPainter::SetClipping
Отправлено: alixandra от Май 22, 2006, 00:02
Добрый день!

Очень хочется перерисовывать весь виждет только в редких и заранее известных случаях, а все остальное время перерисовывать только часть области.
Для этого попыталась использовать QPainter::setClipping и setClipRect, но попытка не удалась :). Изменяется все равно ВСЯ область.

Вот собственно сама попытка:
void Board::paintEvent(QPaintEvent *event)
{
   QPainter *painter = new QPainter(this);
   if (changed)
   {
      <рисуем все>
      changed = false;
   }
   else
   {
      painter->setClipping(true);
                  painter->setClipRect(....);
                  <рисуем кусочек>
   }   
   delete painter;
}


В связи с этим два вопроса:
1. как все-таки заставить работать clipping?
2. есть ли еще какие-нибудь способы перерисовывать только часть?