【问题标题】:Update tkinter gui while button still pressed down finishing other tasks在按钮仍然按下完成其他任务时更新 tkinter gui
【发布时间】:2018-01-12 19:27:03
【问题描述】:

我有一个带有按钮和文本字段的 tkinter gui。当用户按下按钮时,会执行几个任务,我希望将这些任务的进度打印到文本框中。似乎在所有任务完成之前 GUI 不会更新,然后所有文本都会立即显示。有没有办法解决这个问题?我正在使用button.configure(command = self.button_action) 分配我的按钮按下,并且对文本字段的更新是在 button_action 方法中与其他任务一起执行的。

【问题讨论】:

标签: python user-interface tkinter


【解决方案1】:

好吧,我确实想通了。在文本框中添加文本后只需调用root.update()。按钮过早按下,但其他任务继续正常。

【讨论】:

  • 很好,它解决了这个问题。这听起来像是单线程编程的症状,我打算建议使用多线程编程来异步处理多个事件。这是一个很好的 SO 问题,可以查看 stackoverflow.com/questions/41371815/…
  • 我想知道是否有另一种方法可以做到这一点,但仍然在一个线程中,因为我不希望 GUI 在执行命令时可用,我只想要 gui 文本框更新进度。我当前的解决方案是按下按钮并允许用户在命令完成之前再次按下它,开始另一个调用它。
  • 您可以调用 object.pack_forget() 其中 object 是按钮。这让程序忘记了按钮。然后当你想再次激活它时调用 object.pack()。
猜你喜欢
  • 2023-03-20
  • 2022-10-23
  • 1970-01-01
  • 1970-01-01
  • 2019-02-24
  • 2023-01-23
  • 2017-08-21
  • 1970-01-01
  • 2013-05-15
相关资源
最近更新 更多