from gi.repository import Gtk, GObject import datetime class Timer(Gtk.Label): def __init__(self): super(Timer, self).__init__() self.start_time = datetime.datetime.now() self.timer = GObject.timeout_add(100, self.update) self.get_style_context().add_class('timer') def update(self): self.current_time = datetime.datetime.now() - self.start_time self.set_text(self.to_string()) self.timer = GObject.timeout_add(100, self.update) def to_string(self): time = self.current_time return '%02d:%02d:%02d.%01d' % (time.seconds / 3600, (time.seconds / 60) % 60, time.seconds % 60, time.microseconds / 100000)