Spec-Zone.ru › Tcl/Tk

обновление

Имя

обновление — Обработка ожидающих событий и отложенных обратных вызовов

Синопсис

обновление ?idletasks?

Описание

Эта команда используется для синхронизации состояния приложения, многократно входя в цикл обработки событий, пока не будут обработаны все ожидающие события (включая отложенные обратные вызовы).

Если в качестве аргумента команды указано ключевое слово idletasks, то новые события или ошибки не обрабатываются; вызываются только отложенные обратные вызовы. Это заставляет операции, которые обычно откладываются, такие как обновления отображения и вычисления макета окна, выполняться немедленно.

Команда обновление idletasks полезна в скриптах, где были внесены изменения в состояние приложения, и вы хотите, чтобы эти изменения сразу отобразились, вместо ожидания завершения скрипта. Большинство обновлений отображения выполняются как отложенные обратные вызовы, поэтому обновление idletasks заставит их запуститься. Однако существуют некоторые виды обновлений, которые происходят только в ответ на события, например, те, которые вызваны изменениями размера окна; эти обновления не произойдут в обновлении idletasks.

Команда обновление без параметров полезна в скриптах, где выполняется длительное вычисление, но вы все равно хотите, чтобы приложение реагировало на события, такие как взаимодействие пользователя; если вы периодически вызываете обновление, то пользовательский ввод будет обработан во время следующего вызова обновления.

Пример

Выполнить вычисления примерно в течение секунды, а затем завершить:
set x 1000
set done 0
after 1000 set done 1
while {!$done} {
    # A very silly example!
    set x [expr {log($x) ** 2.8}]

    # Test to see if our time-limit has been hit.  This would
    # also give a chance for serving network sockets and, if
    # the Tk package is loaded, updating a user interface.
    update
}

См. также

после, интерп

Licensed under Tcl/Tk terms
https://www.tcl.tk/man/tcl/TclCmd/update.htm

Licensed under Tcl/Tk terms
https://www.tcl.tk/man/tcl/TclCmd/update.htm

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API