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 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
|
#!/bin/python
try:
import pygtk
pygtk.require("2.0")
import time
import gtk
import gtk.glade
import threading
import gobject
import pango
except:
pass
#----------------------------------------------------------------------
class C_horloge:
def __init__(self):
self.gladefile="/home/julien/bin/horloge/chrono.glade"
self.Fenetre=gtk.glade.XML(self.gladefile, "Whorloge")
dic={"on_Whorloge_destroy":self.fermer,"on_start_button_press_event":self.start,"on_pause_button_press_event":self.pause}
self.Fenetre.signal_autoconnect(dic)
self.Waffichage=self.Fenetre.get_widget("texttime")
self.buf=self.Waffichage.get_buffer()
self.truc=0.0
self.t_arret=0.0
self.t_pause=0.0
self.t_cumule=0.0
def start(self,widget,donnees=None):
self.tZero=time.time()
self.test=1
self.truc=0.0
self.t_arret=0.0
self.t_pause=0.0
self.t_cumule=0.0
self.run()
def pause(self,widget,donnees=None):
if self.test==0:
self.t_pause=time.time()-self.t_arret
self.test=(self.test+1)%2
self.boucle()
else:
self.t_cumule=self.t_cumule+self.t_pause
self.t_pause=0.0
self.t_arret=time.time()
self.test=(self.test+1)%2
self.boucle()
def boucle(self):
self.tag = self.buf.create_tag(None, size=65.0 * pango.SCALE)
self.start, self.end = self.buf.get_bounds()
self.buf.apply_tag(self.tag, self.start, self.end)
if self.test==1:
TIMER_ID = gobject.timeout_add (200, self.run)
else:
pass
def run(self):
self.t=time.time() -self.tZero -self.t_cumule-self.t_pause
self.tiTuple=time.gmtime(self.t)
self.tt=time.strftime("%H:%M:%S", self.tiTuple)
self.buf.set_text(self.tt)
self.boucle()
def fermer(self,widget,donnees=None):
gtk.main_quit()
#----------------------------------------------------------------------
if __name__=='__main__':
app=C_horloge()
gtk.main() |
Partager