import gtk, gobject, threading, time
gobject.threads_init()
class T(threading.Thread):
pause = threading.Event()
stop = False
def start(self, *args):
super(T, self).start()
def run(self):
while not self.stop:
self.pause.wait()
gobject.idle_add(self.rungui)
time.sleep(0.1)
def rungui(self):
print "printed"
class Start:
def toggle_thread(self, *args):
thread = T()
if not thread.is_alive():
thread.start()
thread.pause.set()
self.button.set_label('Pause Thread')
return
if thread.pause.is_set():
thread.pause.clear()
self.button.set_label('Resume Thread')
else:
thread.pause.set()
self.button.set_label('Pause Thread')
def __init__(self):
thread = T()
window = gtk.Window()
self.button = gtk.ToggleButton('Start Thread')
self.button.connect('toggled', self.toggle_thread, None)
window.add(self.button)
self.button.show()
window.show()
def main(self):
gtk.main()
if __name__ == "__main__":
start = Start()
start.main()