[pygtk] realtime update of TreeView

Martin B. spooky.ln at tbs-software.com
Fri May 8 23:24:01 WST 2009


hi, i write some simple app where i need realtime update gtk.TreeView.
but window shows and long time nothing happened and after whole
liststore is filled treeview shown :(

need i use threads for this ?
theres a little example.
thanks a lot for your help


import gtk, sys, gobject

class myapp(gtk.Window):
    def __init__(self):
        super(myapp, self).__init__()
        self.set_size_request(300, 400)
        self.connect('destroy', gtk.main_quit)
        
        render = gtk.CellRendererText()
        self.lst = gtk.ListStore(gobject.TYPE_INT, gobject.TYPE_STRING)
        #self.lst.connect('row-inserted', self.row_inserted)
        view = gtk.TreeView(self.lst)
        view.insert_column_with_attributes( -1, "No.", render, markup=0)
        view.insert_column_with_attributes( -1, "Name", render, text=1)
        
        scroll = gtk.ScrolledWindow()
        scroll.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
        scroll.add_with_viewport(view)
        
        self.add(scroll)
        self.show_all()
        self.fill_list()
        
    def fill_list(self):
        """ fill up liststore """
        # do some more complex not this
        for data in xrange(1, 20000):
            self.lst.append([data, "Name: %d" % data])
        
    def row_inserted(self, widget, value, treeiter):
        """ if row is inserted into lst """
        #gobject.idle_add(self.scroll_row)
        pass
        
    def scroll_row(self):
        pass

        
APP = myapp()
gtk.main()


More information about the pygtk mailing list