Jetzt hätte ich gern hinter einem Button eine "Anhalten"-Funktion gelegt, die eine laufende andere Funktion unterbrechen kann.
Wenn ich in meinem Beispielcode auf Start drücke, addiert er ja sinnloserweise in der for-Schleife. Während dieser zeit ist aber die Start-Taste in der GUI gedrückt und ich kann meine Abbrechen-Taste gar nicht drücken (ich weiß ehh noch nicht, ob die implementierte Abbruchlösung so sinnvoll ist). Kann ich die GUI wieder irgendwie aktiv schalten und einen weiteren Button drücken, oder muss ich das Ganze mit Threads lösen? ... und wenn ja, hat da jemand nen Vorschlag?
Code: Alles auswählen
from tkinter import *
globStop = 0
############################################
def main():
root = Tk()
mainFrame = Frame(root, borderwidth=2)
mainFrame.pack(fill='y', padx=10, pady=10 )
startButton = Button(mainFrame, text="Start", command=start, width=20, height=2)
startButton.pack(side=LEFT, anchor='w', padx=10, pady=10)
stopButton = Button(mainFrame, text="Stop", command=abbrechen, width=20, height=2)
stopButton.pack(side=LEFT, anchor='w', padx=10, pady=10)
root.mainloop()
############################################
def start():
global globStop
a = 0
for i in range(9990000):
if globStop: break
a += i
globStop = 0
############################################
def abbrechen():
global globStop
globStop = 1
############################################
main()