2009-10-29 5 views
4

Я использую QPainter, чтобы получить графику в окне. К сожалению, каждый раз, когда запускается .paintEvent, все окно очищается. Как я могу рисовать без очистки? То есть как я могу оставить материал из предыдущего события рисования нетронутым?Qt painting, не очищая фон

Я использую Qt4

+0

Какая версия Qt вы используете? –

ответ

1

В Qt3, установите флаг Qt::WNoAutoErase из WidgetFlags enum, чтобы избежать этого окна очищается на каждом событии краски.

Вы можете установить этот флаг, передав его QWidget constructor.

+0

Документация Qt говорит, что он больше не нужен. Поэтому он не должен использовать его –

+0

@Patrice: Ах, да - в Qt4 он больше не работает. Это решение Qt3. –

4

Поскольку оба ответа предназначены только для Qt3, вот решение для Qt4. Вам нужно позвонить

setAttribute(Qt::WA_OpaquePaintEvent); 

(например, в конструкторе), следуя документации here.