gpt4 book ai didi

python - 方法后 Tkinter 的内部工作

转载 作者:太空宇宙 更新时间:2023-11-04 01:04:12 24 4
gpt4 key购买 nike

我使用 Tkinter GUI 已经有一段时间了。我想知道 after 方法实际上是如何工作的。我的问题很简单。

  1. after 方法在 Tkinter 内部是如何实现的?
  2. after 调用是线程化的吗?
  3. 在 Tkinter 中多次 after 调用有什么缺点(如果有的话)?
  4. after 回调是如何安排的?

我确实浏览了几个链接,例如 this .但无法获取这些信息。

最佳答案

  1. after() 调用 Tck/Tk 的 after 命令,该命令注册一个回调,稍后由 Tcl/Tk 事件循环调用。

  2. after() 调用不是线程化的。

  3. 一个问题是,阻塞或长时间运行的操作可能会导致使用 after() 安排的某项运行时间明显晚于您的预期。还有更多可能相关的利弊,但您需要具体说明您的顾虑或用例...

  4. 回调被注册到 Tcl/Tk 事件循环中,它负责调度。有关其工作原理的详细信息,请参阅 the documentation .

说明:

您可能已经知道,Tkinter 使用 Tcl/Tk内部。

看看the code for the after() method , Tkinter 似乎只是调用 Tcl/Tk after 命令。

documentation for Tcl/Tk's after command没有提到任何关于线程的事情。鉴于Tcl/Tk's single-threaded event loop design,这是有道理的.

因此,我的结论是 Tkinter 的 after() 方法使用线程,而只是使用内部 Tcl/Tk after< 注册一个回调 命令,Tcl/Tk event loop 将在最合适的时间调用该命令.

关于python - 方法后 Tkinter 的内部工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31259524/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com