Advertisement
Guest User

flyguy97

a guest
Dec 8th, 2008
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.50 KB | None | 0 0
  1. import threading
  2. import random, time
  3. import gtk
  4.  
  5. class FractionSetter(threading.Thread):
  6.     def __init__ (self, progressbar):
  7.         threading.Thread.__init__(self)
  8.         self.progressbar = progressbar
  9.         self.stopthread = threading.Event()
  10.    
  11.     def run(self):
  12.         while not self.stopthread.isSet() :
  13.             gtk.gdk.threads_enter()
  14.             self.progressbar.pulse()
  15.             gtk.gdk.threads_leave()
  16.             time.sleep(0.1)
  17.        
  18.            
  19.     def stop(self):
  20.         self.stopthread.set()
  21.         self = None
  22.  
  23.  
  24.  
  25. class ThreadTest:
  26.     def __init__(self):
  27.         gtk.gdk.threads_init()
  28.         self.fs = None
  29.         self.pulsing = False
  30.         self.progressbar = None
  31.         self.fs = None
  32.            
  33.     def main_quit(self, obj):
  34.         if not self.fs == None:
  35.             self.fs.stop()
  36.            
  37.         gtk.main_quit()
  38.        
  39.     def start_new_thread (self, button, data=None):
  40.         if self.fs == None:
  41.             self.fs = FractionSetter(self.progressbar)
  42.            
  43.         if self.pulsing == False:
  44.             button.set_label("Stop")
  45.             self.fs.start()
  46. @@          time.sleep(5)
  47.             self.pulsing = True
  48.         else:
  49.             self.fs.stop()
  50.             self.fs = None
  51.             button.set_label("Start")
  52.             self.pulsing = False
  53.            
  54.        
  55.     def main(self):
  56.         window = gtk.Window()
  57.         vbox = gtk.VBox()
  58.         self.progressbar = gtk.ProgressBar()
  59.         button = gtk.Button("Start")
  60.         vbox.pack_start(button, True, True)
  61.         vbox.pack_start(self.progressbar, True, True)
  62.         window.add(vbox)
  63.         window.show_all()
  64.         button.connect("clicked", self.start_new_thread)
  65.         window.connect('destroy', self.main_quit)
  66.        
  67.         gtk.main()
  68.        
  69. if __name__ == '__main__':
  70.     tt = ThreadTest()
  71.     tt.main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement