Поскольку вы, вероятно, изменяете цвет и стиль или любые другие настройки краски, вы обычно хотите выйти из функции рисования с теми же настройками, что и при входе. Поэтому вы используете QPainter::save()
перед изменением настроек художникаи QPainter::restore()
после завершения рисования с измененными настройками, например,
void paint( QPainter* painter,
const QStyleOptionGraphicsItem* option,
QWidget* widget = 0 )
{
// Painter has certain settings
painter->save();
QPen pen = painter->pen();
pen.setColor(QColor(200,20,20);
// Changing settings of painter
painter->setPen(pen);
// ... Draw
painter->restore();
// Painter has same settings as on entry into this function
}
painter->save()
помещает состояние рисователя в стек, painter->restore()
извлекает состояние из стека и изменяет настройки насопоставьте это.