Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #
- # https://www.reddit.com/r/learnpython/comments/59nj50/while_loop_freezing_tkinter_gui_threading_issue/
- # http://pastebin.com/q877u6gf
- #
- import tkinter as tk
- import threading
- # --- constants --- (UPPER_CASE)
- START = 1
- STOP = 0
- EXIT = -1
- # --- functions ---
- def test_loop():
- global looping
- while True:
- if looping == START:
- print("test")
- if looping == EXIT:
- break
- def start():
- global looping
- looping = START
- def stop():
- global looping
- looping = STOP
- # --- main ---
- looping = STOP
- root = tk.Tk()
- text = tk.StringVar()
- text.set("Here's some text!")
- leftFrame = tk.Frame(root)
- leftFrame.pack(side=tk.LEFT)
- rightFrame = tk.Frame(root)
- rightFrame.pack(side=tk.RIGHT)
- playButton = tk.Button(leftFrame, text="Play", fg="blue", command=start)
- playButton.pack(side=tk.TOP)
- stopButton = tk.Button(rightFrame, text="Stop", fg="red", command=stop)
- stopButton.pack(side=tk.BOTTOM)
- message = tk.Message(root, textvariable=text, relief=tk.RAISED)
- message.pack()
- thread = threading.Thread(target=test_loop)
- thread.daemon = True
- thread.start()
- root.mainloop()
- looping = EXIT
Add Comment
Please, Sign In to add comment