【发布时间】:2021-02-16 07:41:49
【问题描述】:
我尝试制作无限循环功能,但界面总是挂起而没有做任何事情。
我试着做一个while循环,然后也用.after(),结果总是一样的。有人可以帮帮我吗?
def start_ping():
while True:
indices_tabla = tabla.get_children()
for x_fila in range(0,len(indices_tabla)):
celda_ip = tabla.item(indices_tabla[x_fila], 'values')[0]
ping_equipo = ping(str(celda_ip), count=4)
msg = (celda_ip + '\n' +
'\n' +
str(datetime.now()) + '\n' +
'\n' +
str(ping_equipo) + '\n' +
'\n' +
'--------------------------------------------------' + '\n' + '\n')
text_box.insert(tk.END, msg)
text_box.yview(tk.END)
celda_p_enviados = int(tabla.item(indices_tabla[x_fila], 'values')[1])
tabla.insert("", tk.END, text=str(lista_equipos[x_fila]),
values=(str(lista_pings[x_fila]),celda_p_enviados+4,"0"))
tabla.delete(indices_tabla[x_fila])
btn_start_ping = tk.Button(ventana, text="Start Ping!",
command= lambda: start_ping()).grid(row=2 , column=0)
【问题讨论】:
-
ping()可能需要几秒钟才能完成,因此它将阻止 tkinter 处理待处理的任务。使用线程运行start_ping()。
标签: python loops button tkinter