Что означает «Gdk-WARNING **: gdk-frame-clock: макет постоянно запрашивается, отказываясь после 4 попыток»? - PullRequest
0 голосов
/ 24 декабря 2018

Когда я запускаю код Python gtk3 с помощью pygobject в Ubuntu 18.04, код запускается без каких-либо предупреждений.Но когда я собираю его на 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 .Вот сценарий Python для точки входа .

Может кто-нибудь дать мне несколько указаний?

1 Ответ

0 голосов
/ 27 декабря 2018

Ошибка обычно означает, что вы пытаетесь изменить пользовательский интерфейс, не синхронизированный с потоком GTK.

Таким образом, мы должны убедиться, что все функции обновления пользовательского интерфейса не вызываются напрямую, а вместо этого ставятся в очередь для вызова Gtk, используя любое из следующих действий:

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

Надеюсь, что это кому-нибудь поможет.

...