Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import threading
- import random, time
- import gtk
- class FractionSetter(threading.Thread):
- def __init__ (self, progressbar):
- threading.Thread.__init__(self)
- self.progressbar = progressbar
- self.stopthread = threading.Event()
- def run(self):
- while not self.stopthread.isSet() :
- gtk.gdk.threads_enter()
- self.progressbar.pulse()
- gtk.gdk.threads_leave()
- time.sleep(0.1)
- def stop(self):
- self.stopthread.set()
- self = None
- class ThreadTest:
- def __init__(self):
- gtk.gdk.threads_init()
- self.fs = None
- self.pulsing = False
- self.progressbar = None
- self.fs = None
- def main_quit(self, obj):
- if not self.fs == None:
- self.fs.stop()
- gtk.main_quit()
- def start_new_thread (self, button, data=None):
- if self.fs == None:
- self.fs = FractionSetter(self.progressbar)
- if self.pulsing == False:
- button.set_label("Stop")
- self.fs.start()
- @@ time.sleep(5)
- self.pulsing = True
- else:
- self.fs.stop()
- self.fs = None
- button.set_label("Start")
- self.pulsing = False
- def main(self):
- window = gtk.Window()
- vbox = gtk.VBox()
- self.progressbar = gtk.ProgressBar()
- button = gtk.Button("Start")
- vbox.pack_start(button, True, True)
- vbox.pack_start(self.progressbar, True, True)
- window.add(vbox)
- window.show_all()
- button.connect("clicked", self.start_new_thread)
- window.connect('destroy', self.main_quit)
- gtk.main()
- if __name__ == '__main__':
- tt = ThreadTest()
- tt.main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement