1. #!/usr/bin/env python
  2.  
  3. import sys
  4. import pango
  5. import threading
  6. from threading import Thread
  7. import time
  8. try:
  9. import pygtk
  10. pygtk.require("2.0")
  11. except:
  12. pass
  13. try:
  14. import gtk
  15. import gtk.glade
  16. except:
  17. sys.exit(1)
  18.  
  19. class MainWindowGTK:
  20.  
  21. def __init__(self):
  22.  
  23. #Set the Glade file
  24. self.gladefile = "prototype.glade"
  25. self.wTree = gtk.glade.XML(self.gladefile)
  26.  
  27. #Create our dictionay and connect it
  28. dic = { "on_wndMain_destroy_event" : gtk.main_quit,
  29. "on_imgJa_button_press_event" : self.ja_press,
  30. "on_imgNej_button_press_event" : self.nej_press}
  31. #"on_imgJa_button_release_event" : self.ja_press,
  32. #"on_imgNej_button_release_event" : self.nej_press}
  33. self.wTree.signal_autoconnect(dic)
  34.  
  35. # Set font stuff
  36. label = self.wTree.get_widget("lblHeader")
  37. label.modify_font(pango.FontDescription("sans 28"))
  38. label = self.wTree.get_widget("lblClock")
  39. label.modify_font(pango.FontDescription("sans 15"))
  40. window = self.wTree.get_widget("wndMain")
  41. window.modify_bg(gtk.STATE_NORMAL, gtk.gdk.color_parse("#5295E1"))
  42. # label.set_alignment(0, 0.5)
  43.  
  44. def ja_press(self, widget, event):
  45. breakbreakbreakbreak
  46. image = self.wTree.get_widget("imgJa")
  47. image.set_from_file("button_ja_clicked.png")
  48. Thread(target=self.change_back, args=(image,"button_ja.png")).start()
  49.  
  50. def nej_press(self, widget, event):
  51. image = self.wTree.get_widget("imgNej")
  52. image.set_from_file("button_nej_clicked.png")
  53. myThread = ChangeBackThread(image, "button_nej.png")
  54. myThread.start()
  55. #myThread = Thread(target=self.change_back, args=(image,"button_nej.png"))
  56. #myThread.start()
  57.  
  58. def change_back(self, image, filename):
  59. print "should change back in one second"
  60. time.sleep(1)
  61. image.set_from_file(filename)
  62. print "should have change image to " + filename + " by now"
  63.  
  64. class ChangeBackThread(threading.Thread):
  65. img = 0
  66. name = 0
  67.  
  68. def __init__(self, image, fname):
  69. threading.Thread.__init__(self)
  70. self.img = image
  71. self.name = fname
  72.  
  73.  
  74. def run(self):
  75. time.sleep(1)
  76. print "Setting image to " + self.name
  77. self.img.set_from_file(self.name)
  78. self.img.queue_draw
  79.  
  80.  
  81.  
  82.  
  83. if __name__ == "__main__":
  84. hwg = MainWindowGTK()
  85. gtk.main()