【问题标题】:Tkinter is freezing while the loop is processing, how can i prevent it?Tkinter 在循环处理时冻结,我该如何防止它?
【发布时间】:2011-09-20 21:06:15
【问题描述】:

我正在制作一些包含 while 循环的程序(以说明一些数字计算),当我将 Tkinter 用于 GUI 时,程序窗口会冻结,直到循环完成。我想添加一个停止按钮,并且我希望窗口不会冻结。我该怎么做这两件事?

谢谢

【问题讨论】:

    标签: python tkinter


    【解决方案1】:

    您必须使用单独的线程或进程。 Tkinter 使用单个线程来处理显示更新,并且使用同一个线程来做事件回调。如果您的事件处理程序阻塞,则在完成之前不会执行任何 Tkinter 代码。

    如果您有 Tkinter 线程(调用 Tk.mainloop 的线程)和另一个线程用于应用程序的其余部分,那么在 Tkinter 线程中运行的事件处理程序可以简单地将消息(可能使用 Queue.Queue)传递给您的应用程序事件处理程序。

    【讨论】:

      猜你喜欢
      • 2013-05-20
      • 1970-01-01
      • 1970-01-01
      • 2022-06-21
      • 2018-07-06
      • 1970-01-01
      • 1970-01-01
      • 2015-08-16
      • 1970-01-01
      相关资源
      最近更新 更多