2011-05-16 79 views
2

每当显示的QBoxLayout被填充时,随着窗口小部件被添加到布局中,屏幕上会有一些闪烁。我该如何阻止这种闪烁?使用QBoxLayout减少闪烁

setUpdatesEnabled没有办法。

回答

5

show()只有在完成填充/布置后才能使用该小部件。

或者在您完成向其添加内容之前,不要将您的布局附加到它的小部件。 (即,只有在您完成向your_layout添加内容后才呼叫setLayout(your_layout))。

或者,查看 updatesEnabled QWidget属性。您可以使用它来暂时禁用小部件的更新以防止闪烁。 (这在你制作“大规模”改变到基础数据是在更复杂的窗口小部件等 QTableWidget和类似最有用的。)

从DOC报价以上:

setUpdatesEnabled()通常用于

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

+0

如何将布局附加到窗口小部件? – Olumide 2014-09-01 19:34:22

+0

使用'setLayout'。 – Mat 2014-09-01 19:36:48