Qt рисует без очистки фона - PullRequest
5 голосов
/ 29 октября 2009

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

Я использую Qt4

Ответы [ 3 ]

6 голосов
/ 09 августа 2013

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

setAttribute(Qt::WA_OpaquePaintEvent);

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

4 голосов
/ 29 октября 2009

Вам необходимо установить backgroundMode с помощью установщика setBackgroundMode. Перечисление Qt::NoBackground - это то, что вы ищете.

1 голос
/ 29 октября 2009

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

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

...