在 tkinter GUI 中,什么是未决事件和空闲回调?
In tkinter GUI what are pending events and idle callbacks?
我想知道什么是未决事件和空闲回调,因为互联网上到处都写着 window.update() 获取最新的未决事件和空闲回调,我无法理解这个的含义.
考虑这行代码:
some_widget.configure(background="red")
执行此代码时,更改不会立即发生。相反,更改被添加到空闲事件队列中。这些事件直到下一次处理队列中的事件时才会得到处理。
类似地,如果您执行 root.after(1000, some_function)
之类的操作,对 some_function
的调用将添加到空闲队列中,并且不会被处理,直到某些东西处理了空闲队列并且至少经过了 1000 毫秒.
现在,考虑一个 canvas,当您单击它时它会执行操作。如果快速连续点击它三次,tkinter 一次只能处理一个事件。在处理第一次点击时,其他两次 待处理 。它们在队列中,但实际上不会得到处理,直到调用 update
或代码 returns 控制 mainloop
.
我想知道什么是未决事件和空闲回调,因为互联网上到处都写着 window.update() 获取最新的未决事件和空闲回调,我无法理解这个的含义.
考虑这行代码:
some_widget.configure(background="red")
执行此代码时,更改不会立即发生。相反,更改被添加到空闲事件队列中。这些事件直到下一次处理队列中的事件时才会得到处理。
类似地,如果您执行 root.after(1000, some_function)
之类的操作,对 some_function
的调用将添加到空闲队列中,并且不会被处理,直到某些东西处理了空闲队列并且至少经过了 1000 毫秒.
现在,考虑一个 canvas,当您单击它时它会执行操作。如果快速连续点击它三次,tkinter 一次只能处理一个事件。在处理第一次点击时,其他两次 待处理 。它们在队列中,但实际上不会得到处理,直到调用 update
或代码 returns 控制 mainloop
.