Глава 19. Таймауты, ввод-вывод и функции Idle

Содержание

19.1. Таймауты
19.2. Мониторинг ввода-вывода(IO)
19.3. Функции Idle

19.1. Таймауты

Вам, возможно, интересно, как заставить GTK делать полезную работу в main(). Тогда у вас есть несколько возможностей. Использование следующей функции gobject позволит вам создавать функцию-таймаут, которая будет вызываться каждые "interval" милисекунд.

  source_id = gobject.timeout_add(interval, function, ...)

Аргумент interval это число милисекунд между вызовами функции. Аргумент function это callback, который вы вызываете. Все остальные аргументы передаются функции как данные. Возвращаемое значение - целочисленное "source_id", которое может быть использовано для остановки таймаута вызовом:

  gobject.source_remove(source_id)

Также вы можете остановить таймаут возвращением нуля или FALSE в функции. Если вы хотите чтобы callback вызывался снова, он должен возвращать TRUE.

Ваш callback должен выглядеть как-то так:

  def timeout_callback(...):

Число аргументов для callback функции должно совпадать с числом аргументов, указанных в timeout_add().