Hallo Ich habe eine kleine Python-GUI-Schnittstelle mit zwei Tasten, starten (das startet einen Zähler) und zu stoppen (das heißt, um den Zähler zu stoppen), der Zähler ist eine Endlosschleife, da ich nicht möchte, dass sie endet, wenn nicht die zweite Schaltfläche geklickt wird. Das Problem ist, dass die zweite Taste nicht angeklickt werden kann, während die Funktion von der ersten noch läuft. Ich lese, dass ich Threading verwenden muss und ich habe versucht, aber ich verstehe nicht vollständig, wie ich das tun kann. Bitte helfen Sie.Python, Tkinter: Wie kann ich verhindern, tkinter GUI Mainloop Absturz mit Threading
from Tkinter import *
import threading
class Threader(threading.Thread):
def run(self):
for _ in range(10):
print threading.current_thread().getName()
def main(self):
import itertools
for i in itertools.count(1, 1):
print i
def other(self):
print "Other"
m = Threader(name="main")
o = Threader(name="other")
try:
'''From here on we are building the Gui'''
root = Tk()
'''Lets build the GUI'''
'''We need two frames to help sort shit, a left and a right vertical frame'''
leftFrame = Frame(root)
leftFrame.pack(side=LEFT)
rightFrame = Frame(root)
rightFrame.pack(side=RIGHT)
'''Widgets'''
'''Buttons'''
playButton = Button(leftFrame, text="Play", fg="blue", command=m.main)
stopButton = Button(rightFrame, text="Stop", fg="red", command=o.other)
playButton.pack(side=TOP)
stopButton.pack(side=BOTTOM)
root.mainloop()
except Exception, e:
print e