"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
希望对某人有所帮助。
当我 运行 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
希望对某人有所帮助。