Вопрос

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

Я использую Qt4

Это было полезно?

Решение

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

Другие советы

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

setAttribute(Qt::WA_OpaquePaintEvent);

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top