#!/usr/bin/env python import gobject, gnt from time import sleep from threading import Thread import sys gobject.threads_init() class MyW(gnt.Window): __gntbindings__ = { 'new-close' : ('new_close', 'c'), } def new_close(self, null): sys.stderr.write("XXX\n") return True gobject.type_register(MyW) gnt.register_bindings(MyW) class UI: def __init__(self): win = MyW() win.set_property('vertical', True) win.set_title("Contor") #gnt.set_flag(win, 1<<3) # setup logger self.logger = logger = gnt.TextView() logger.set_size(10, 5) logger.set_flag(1<<0) win.add_widget(logger) self.child = updater = Thread(target=self.updater, args=(logger,)) updater.setDaemon(True) updater.start() win.show() def reset_logger(w): self.logger = None win.connect('destroy', reset_logger) gnt.gnt_main() gnt.gnt_quit() def __del__(self): sys.exit(0) def updater(self, logger): self.count = 0 gobject.timeout_add(100, self.msg) def msg(self): if self.logger is None: return False self.logger.append_text_with_flags("%s " % self.count, gnt.TEXT_FLAG_NORMAL) self.logger.scroll(0) self.logger.draw() self.count = self.count + 1 return True if __name__ == "__main__": UI()