Qt рисует без очистки фона
-
10-07-2019 - |
Вопрос
Я использую QPainter для отображения графики в окне. К сожалению, каждый раз, когда вызывается функция paintEvent ()
, все окно очищается. Как я могу нарисовать без очистки? То есть как оставить материал из предыдущего события рисования без изменений?
Я использую Qt4
Решение
Вам необходимо установить backgroundMode
с помощью setBackgroundMode
. Перечисление Qt :: NoBackground
- это то, что вы ищете.
Другие советы
Поскольку оба ответа предназначены только для Qt3, вот решение для Qt4. Вам нужно позвонить
setAttribute(Qt::WA_OpaquePaintEvent);
(например, в конструкторе), следуя документации здесь а>. р>
В Qt3 установите флаг Qt :: WNoAutoErase
из Перечисление WidgetFlags , чтобы избежать очистки окна при каждом событии рисования.
Вы можете установить этот флаг, передав его конструктору QWidget . р>