首页 > 解决方案 > GLib.idle_add(function) 对不同的函数有不同的策略

问题描述

我有一个 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

标签: pythongtkglib

解决方案


实际上并不是idle_add那个行为。由 调用的widget-queue-draw-region的文档queue-redraw指出,仅在主循环不再忙后才完成重绘。


推荐阅读