使用QBoxLayout减少闪烁

Nei*_*l G 3 qt flicker

每当填充显示的QBoxLayout时,随着小部件被添加到布局中,屏幕上会出现一些闪烁.如何阻止这种闪烁?

setUpdatesEnabled没有做到这一点.

Mat*_*Mat 5

show() 只有在您完成填充/铺设后才能使用该窗口小部件.

或者,在完成添加内容之前,不要将布局附加到窗口小部件.(即只有setLayout(your_layout)在完成添加内容后才会调用your_layout).

或者,您也可以入住酒店.您可以使用它暂时禁用窗口小部件的更新以防止闪烁.(当您对基础数据进行"大规模"更改时,这对于更复杂的小部件非常有用.)updatesEnabled QWidgetQTableWidget

从上面的文档引用:

setUpdatesEnabled()通常用于在短时间内禁用更新,例如在大的更改期间避免屏幕闪烁.在Qt中,窗口小部件通常不会生成屏幕闪烁,但在X11上,当窗口小部件被隐藏之前,服务器可能会擦除屏幕上的区域,然后才能被其他窗口小部件替换.禁用更新解决了这个问题.