1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| import threading
import sys
import time
import Tkinter
import random
class EVENT():
def __init__(self, text='???'):
self.message = text
def get(self):
return self.message
def eventMaker(text, running, win):
while running.get():
if random.randint(0, 1000) == 0:
sys.stdout.write(text)
#~ win.event_add("<<message>>", EVENT(text))
eventShow(EVENT(text))
time.sleep(0.001)
def eventShow(message):
if message.get() == 'a':
a_counter.set(a_counter.get() + 1)
elif message.get() == 'b':
b_counter.set(b_counter.get() + 1)
win = Tkinter.Tk()
#~ win.bind("<<can_msg>>", eventShow)
running = Tkinter.IntVar(value=1)
a_counter = Tkinter.IntVar(value=0)
b_counter = Tkinter.IntVar(value=0)
Tkinter.Label(win, textvariable=a_counter, width=20).grid()
Tkinter.Label(win, textvariable=b_counter, width=20).grid()
a = threading.Thread(None, eventMaker, None, ('a', running, win))
b = threading.Thread(None, eventMaker, None, ('b', running, win))
a.start()
b.start()
win.mainloop()
running.set(0)
sys.stdout.write('\nend of program\n') |
Partager