Ich beschäftige mich seit geraumer Zeit mit diesem Problem, habe aber bisher keine gute Lösung gefunden. Derzeit sieht die Situation so aus:
Ich habe einen Countdown sowie ein Eingabefeld und einen Button. Gibt man einen Buchstaben in das Textfeld ein und drückt den Button, sollte der Countdown stehenbleiben.
Nun zum Problem: Wegen des Countdowns kann man scheinbar nichts in das Textfeld eingeben, und wenn doch, dann mit erheblicher Verzögerung. Habe auch schon probiert, das ganze mit Threads zu lösen - bisher jedoch ohne Erfolg.
Gibt es eine Lösung zu diesem Problem, bzw. wie muss man den Code abändern, damit der Countdown läuft, und man währenddessen auch den Buchstaben eingeben kann und auf Submit drücken kann?
Code: Alles auswählen
import Tkinter,os,time,sys,thread
main = Tkinter.Tk()
zeit = 15
aus = 0
def zeitupd():
global zeit,aus
if aus != 1:
zeit2 = -1
if zeit2 != zeit:
zeit -= 1
uhrzeit.config(text=zeit)
time.sleep(1)
uhrzeit.after(100,zeitupd)
#if zeit == 10:
# aus = 1
if zeit == 0:
os.system("otherprocess.exe")
sys.exit(0)
def ende():
global aus
if t1.get() == "h":
aus = 1
uhrzeit = Tkinter.Label(main,font=('courier',13),text=zeit)
uhrzeit.pack()
t1 = Tkinter.Entry(main)
l2 = Tkinter.Button(main,text="Anhalten",command=ende)
t1.pack()
l2.pack()
thread.start_new_thread(zeitupd,())
main.mainloop()