"Gdk-WARNING **: gdk-frame-clock: layout continuously requested, giving up after 4 tries" 是什么意思?

What does "Gdk-WARNING **: gdk-frame-clock: layout continuously requested, giving up after 4 tries" mean?

当我 运行 gtk3 python 代码在 Ubuntu 18.04 中使用 pygobject 时,代码 运行s 没有任何警告。但是当我在 Ubuntu 16.04 上构建它时,我收到了这些警告:

Gdk-WARNING **: gdk-frame-clock: layout continuously requested, giving up after 4 tries

代码中没有任何部分试图在一秒内刷新屏幕,哪怕是两次(除非有一些 check_resize 事件)。我无法理解导致此错误的原因。我没有 Ubuntu 16.04。所以我也无法调试。

重现步骤

从按扣安装边缘释放装置。

sudo snap install --edge halo-weather

和运行它。

halo-weather

这是一个名为 Halo. Here is the entry point python script 的简单天气应用程序的开源项目。

有人能给我指路吗?

错误通常意味着您正在直接尝试修改 UI 与 GTK 线程不同步。

所以我们需要确保所有 UI 更新函数都不会被直接调用,而是排队等候 Gtk 使用以下任何方法调用:

GLib.idle_add(callback, ...)
GLib.timeout_add(interval, callback, ...)  # X milliseconds delay
GLib.timeout_add_seconds(interval, callback, ...)  # X seconds delay

希望对某人有所帮助。