【发布时间】:2020-03-05 14:52:28
【问题描述】:
我在我的 tkinter 项目中使用这个代码 sn-p 当我按下按钮时它立即冻结。 如何防止它冻结?
# Toggle Button
def toggle():
if t_btn.config('text')[-1] == 'ON':
t_btn.config(text='OFF')
cmd = os.system('python test.py')
# cmd = 'python net_stat.py'
op = subprocess.check_output(cmd, shell=True)
list1.insert(Tk.END, op)
else:
t_btn.config(text='ON')
r.quit()
t_btn = Tk.Button(page1, text="ON", width=12, command=toggle)
t_btn.pack(side=Tk.BOTTOM)
【问题讨论】:
-
第一个您不想使用
config()来检查文本。请改用t_btn['text'] == 'ON'。如果您在切换功能的每一行之前放置一个打印语句,您可以找出应用程序卡住的位置。 -
我按照你说的做了,它是 Compilig untill cmd = os.system 但它没有在 tkinter 的列表视图中添加元素。在命令 shell 中显示输出但 GUI 冻结我不知道为什么
-
可能是因为您的 os.system 命令阻塞了主循环。你可能想在它自己的线程中运行它。
标签: python-3.x tkinter freeze