使用QBoxLayout减少闪烁

3
每当一个显示的QBoxLayout被填充时,屏幕上会出现一些闪烁,因为小部件被添加到布局中。如何停止这种闪烁?
setUpdatesEnabled并没有起到作用。
1个回答

5

show()在你完成填充/布局之后才显示小部件。

或者在添加完内容之前不要将布局附加到它的小部件上。(即仅在完成向your_layout添加内容时才调用setLayout(your_layout))。

或者请查看上面文档中关于QWidget属性的updatesEnabled。您可以使用它来临时禁用小部件的更新以防止闪烁。(对于更复杂的小部件,例如QTableWidget等,在对基础数据进行“大规模”更改时,这是最有用的。)

引用上面的文档:

setUpdatesEnabled()通常用于短时间内禁用更新,例如在进行大量更改时避免屏幕闪烁。在Qt中,小部件通常不会产生屏幕闪烁,但是在X11上,当小部件在被其他小部件替换之前被隐藏时,服务器可能会清除屏幕上的区域。禁用更新可以解决这个问题。


一个布局如何附加到小部件上? - Olumide

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接