我有一个与arduino通信的tkinter图形界面上的代码,碰巧我得到了时间打开和关闭的时间,所以我将每个当前时间与无限循环中的键入时间进行比较,该循环仅适用于第二个在此处输入代码请求关闭led的条目结束时,当它进入循环时,tkinter不响应。你知道吗
from tkinter import *
import serial
from time import strftime
conexao = serial.Serial('COM3', 9600, timeout=0.5)
cont=0
janela = Tk()
def ligar():
global cont
cont=cont+1
if cont==1:
valor=bytes(('1'),'utf-8')
conexao.write(valor)
ligar['text']='Desligar led'
elif cont==2:
valor=bytes(('2'),'utf-8')
conexao.write(valor)
ligar['text']='Ligar led'
cont=0
def agendar():
comeco= start.get()
final= limit.get()
while 1>0:
if comeco == strftime('%H:%M:%S'):
valor=bytes(('1'),'utf-8')
conexao.write(valor)
elif final == strftime('%H:%M:%S'):
valor=bytes(('2'),'utf-8')
conexao.write(valor)
break
ligar=Button(janela,command=ligar,text='ligar',width="60")
ligar.grid(row=1)
texto=Label(text='Defina o começo:').grid(row=2)
start=Entry(janela)
start.grid(row=3)
texto2=Label(text='Defina o fim:').grid(row=4)
limit=Entry(janela)
limit.grid(row=5)
salvar=Button(janela,width="30",text='Salvar Horarios',command=agendar)
salvar.grid(row=6)
您应该使用
after
定期运行代码。你知道吗我不能测试,但我会的
您可以使用线程,而不是使用
after
方法,这允许您的GUI与while循环同时运行。你知道吗下面是一个简短的分类:
注意:我将limit和start定义为全局变量,但我不确定您是否需要它。
另外,我还没有测试过它,但我很肯定它能用。
相关问题 更多 >
编程相关推荐