使用QBoxLayout减少闪烁

时间:2011-05-16 10:31:44

标签: qt flicker

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

setUpdatesEnabled没有做到这一点。

1 个答案:

答案 0 :(得分:5)

show()小部件只有在您完成填充/铺设后才会显示。

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

或者,查看updatesEnabled QWidget属性。您可以使用它暂时禁用窗口小部件的更新以防止闪烁。 (当您对基础数据进行“大量”更改时,这对于QTableWidget等更复杂的小部件非常有用。)

来自上述文档的引用:

<击>   

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