【问题标题】:tkinter about the state of button when the code runtkinter 关于代码运行时按钮的状态
【发布时间】:2021-08-04 13:43:34
【问题描述】:

如何在关联的进程(守护进程?)正在运行后端时禁用按钮(以防止滥用单击)并在进程完成时变为可用,而在进程运行期间,主 gui 始终处于活动状态。

# -*- coding: utf-8 -*-
import tkinter as tk
import time


win = tk.Tk()

def test():
    time.sleep(3)

but1 = tk.Button(win, text="Run", command=test)
but1.pack()

win.mainloop()

【问题讨论】:

  • 当进程是守护进程时,如何点击该按钮?
  • 尝试添加but1.config(state="disabled") 以禁用该按钮并添加but1.config(styate="normal") 以重新启用该按钮。此外,您不应该在与tkinter 相同的线程中运行任何可能需要很长时间的东西(例如time.sleep(3)

标签: python tkinter button state


【解决方案1】:

像这样创建一个 if 语句或 while 循环。像这样的东西适用于您的用例。

if daemon:
  but1.config(state = 'disabled')
else:
 but1.config(state = 'normal')

【讨论】:

  • 在使用 tkinter 时使用 while 循环是个坏主意,除非你真的知道自己在做什么。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-27
  • 2017-03-08
  • 1970-01-01
相关资源
最近更新 更多