每当一个显示的QBoxLayout被填充时,屏幕上会出现一些闪烁,因为小部件被添加到布局中。如何停止这种闪烁?
setUpdatesEnabled并没有起到作用。
setUpdatesEnabled并没有起到作用。
show()
在你完成填充/布局之后才显示小部件。
或者在添加完内容之前不要将布局附加到它的小部件上。(即仅在完成向your_layout
添加内容时才调用setLayout(your_layout)
)。
或者请查看上面文档中关于QWidget
属性的updatesEnabled
。您可以使用它来临时禁用小部件的更新以防止闪烁。(对于更复杂的小部件,例如QTableWidget
等,在对基础数据进行“大规模”更改时,这是最有用的。)
引用上面的文档:
setUpdatesEnabled()
通常用于短时间内禁用更新,例如在进行大量更改时避免屏幕闪烁。在Qt中,小部件通常不会产生屏幕闪烁,但是在X11上,当小部件在被其他小部件替换之前被隐藏时,服务器可能会清除屏幕上的区域。禁用更新可以解决这个问题。