我有一个GTK窗口。事实证明,如果我使用idle_add(window.queue_draw)
从一个单独的线程一次调度几个重绘调用,而没有任何延迟,那么将只执行一个调用。
如果我执行idle_add(custom_function)
,则每次对custom_function的预定调用都会运行。
虽然很明显,这是为了优化而完成的,但我看不到文档[1]中是否提到了此问题,我也想知道idle_add
是否还有其他这样的规则。
[1] https://developer.gnome.org/pygobject/stable/glib-functions.html
答案 0 :(得分:2)
实际上不是idle_add
导致的。 widget-queue-draw-region的文档被queue-redraw
调用,指出重新绘制仅在主循环不再繁忙之后才能完成。