我曾尝试创建无限循环函数,但接口总是挂起而不执行任何操作。
我试着做了一个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)
您可以使用
after
在给定的毫秒数之后调用函数。如果函数在延迟后使用after
调用自身,则实际上创建了一个无限循环步骤1,创建一个每秒调用另一个函数的函数:
步骤2,创建执行一次迭代的函数:
步骤3,调用第二个函数一次以启动循环:
如果希望函数能够跳出循环,请让内部函数返回布尔值,外部函数使用结果确定是否应继续
相关问题 更多 >
编程相关推荐