show()
виджет только после того, как вы закончили его заполнять / раскладывать.
Или не прикрепляйте свой макет к его виджету, пока вы не добавите к нему что-то. (то есть, звоните setLayout(your_layout)
только после того, как вы добавили вещи в your_layout
).
Кроме того, обратите внимание на свойство updatesEnabled
QWidget
. Вы можете использовать это, чтобы временно отключить обновления виджета, чтобы предотвратить мерцание. (Это наиболее полезно для более сложных виджетов, таких как QTableWidget
и аналогичных, когда вы вносите «массивные» изменения в базовые данные.)
Цитата из документа выше:
setUpdatesEnabled () обычно используется для отключения обновлений на короткий промежуток времени, например, чтобы избежать мерцания экрана при больших изменениях. В Qt виджеты обычно не генерируют мерцание экрана, но в X11 сервер может стирать области на экране, когда виджеты скрываются, прежде чем их можно будет заменить другими виджетами. Отключение обновлений решает это.