LINUX.ORG.RU

Как сделать чтоб Qt не очищал ранее нарисованное

 


0

1

Простой код, в событии рисования рисуем

p.drawEllipse(rand()%100, rand()%100,5,5);

Но в результате мы всегда видим лишь один шарик на экране. Как сделать чтоб каждый кадр Qt не очищало все? setAutoFillBackground(false); - не сработало

UPD: setAttribute(Qt::WA_NoBackground); Сработало. Вопрос закрыт.

★★★

Последнее исправление: abs (всего исправлений: 1)
setAutoFillBackground(false)
m0rph ★★★★★
()

Это грязный хак, почему нельзя рисовать в память? Например на QImage (или кажись QPixmap) можно натравить QPainter и рисовать там с запоминанием. А в paintEvent лишь выводить содержимое картинки без масштабирования, вызывая update если надо.

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Патамушта в Qt c 4й ветки автоматом двойная буфферизация.
Подробности см тут http://doc.qt.io/qt-4.8/qwidget.html#transparency-and-double-buffering

Так что, если есть непреодолимое желание рисовать в своем QPixmap, то лишнюю буферизацию лучше таки отключить.

AF ★★★
()
Ответ на: комментарий от AF

Ну это само собой разумеется, я так и делаю в подобной ситуации :)

I-Love-Microsoft ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.