LINUX.ORG.RU

аналог autoFillBackgroud для Qt 3

 ,


0

1

Известно что в Qt 4.1 была добавлена функция setAutoFillBackgroud, которая будучи false позволяла не перерисовывать фон виджета, учитывая что все равно всё будет своим полностью зарисовано, т.е. надобности в предварительной очистки фоном - нет.

Как подобное реализовать в Qt3?

Есть старая софтиночка с исходниками, написанная на Qt3 криворукими быдлокодерами и при обновлении всего изображения - оно мерцает, при этом там полностью свой фон, все надписи и прочее - свои, там по сути просто готовый pixmap вываливается на экран (я вот только с Qt4 начинал, неужели там не было doublebufferинга в Qt3 что приходилось так извращаться?).

Qt::WStaticContents - indicates that the widget contents are north-west aligned and static. On resize, such a widget will receive paint events only for the newly visible part of itself.

Qt::WNoAutoErase - indicates that the widget paints all its pixels. Updating, resizing, scrolling and focus changes should therefore not erase the widget. This allows smart-repainting to avoid flicker.

Это флаги, для указания при создании виджета (QWidget - 3-ий параметр)

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

В общем да, Qt::WNoAutoErase - реально сработало, спасибо! Тема решена.

P.S. Не во всех местах это помогло исправить, в других проблема решилась предварительным рисованием в QPixmap и затем уже одной командой вывод в QPainter - так, когда рисование осуществляется в памяти, пользователь никогда не увидит что мы что-то стирали на фоне.

В Qt4/5 таких проблем не упоминаю, неужто в Qt4/5 по умолчанию буферизованная отрисовка?

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