У меня есть две глобальные переменные (StringVar()
), которые нужно мгновенно обновлять внутри функции, а не в конце.Это мой код.
def send_command_onLED():
global ReactionTime_HHHH
global ReactionTime_T
global string_time
global mode
global mode_sel
global command
global text_mode_sel
global go_text
if mode==0:
if command=='GUI':
text_mode_sel.set("") # bisogna fare in modo di far eseguire subito questi due comandi
go_text.set("GO!!!") #
elif command=='CMDL':
print("Ready, steady, go!!!")
ReactionTime_T = ''
ReactionTime_HHHH = ''
numcasuale = random.randint(10,20)
time.sleep(numcasuale)
ser.write("L1".encode())
t0 = time.time()
while(ReactionTime_T!='T'):
ReactionTime_T=ser.read(1).decode('utf-8')
t1 = time.time()
if t1-t0>70:
print("Error TIMEOUT!")
exit()
else:
ReactionTime_HHHH=ser.read(4).decode('utf-8')
ser.reset_input_buffer()
if command=='GUI':
if ReactionTime_HHHH=="FFFF":
string_time.set("You are drunk my friend!!!!")
else:
string_time.set(str(int(ReactionTime_HHHH, 16)) + " ms")
updateScore()
go_text.set("")
elif command=='CMDL':
if ReactionTime_HHHH=="FFFF":
print("\nYou are drunk my friend!!!!\n")
else:
print("\nNew score: " + str(int(ReactionTime_HHHH, 16)) + " ms\n")
mode=1
mode_sel=1
else:
mode_sel=0
if command=='CMDL':
print("Unable to execute this command, the LED is already ON! ")
Переменные text_mode_sel
и go_text
должны быть обновлены до time.sleep()
, потому что они являются текстовыми переменными двух меток (я использовал tkinter) и их изменения должны быть мгновеннымивидно за пределами функции, прежде чем она заканчивается.Другими словами, их изменения должны отображаться мгновенно.С моим кодом они обновляются только тогда, когда функция заканчивается и изменения до time.sleep()
не имеют ожидаемого эффекта.Есть ли способ обновить эти переменные во время выполнения функции ??