Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

pygtk treeview contents update/refresh

I finally managed to write a little app that reads from a sqlite database and show the results to a treeview. Another form (in another module) gives the ability to write new or update existing records. After writing to the database it closes the window

What I'm trying to do now is to update the "main" window (containing the treeview) to show the new dataset. I have managed so far to do this but a) the initial mainwindow stays there while a new instance of it opens on top of it showing the desired (new) dataset.

How would I make this work? Can someone give me suggestions/example?

Perhaps I need to say that the __init__ function of my mainwindow module does everything upon running: creates the gui, reads from the database and show all. I suspect that this may be the problem but having tryed almost any combination of breaking it into pieces (functions), I had no success

--EDIT--

OK I have many different functions __init__ now creates the main gui while others read the data from the DB and place it on a treeview.

I tried to use a timer but also this option doesn't seem to be apropriate as gtk.TreeView doesn't have such a method.

like image 695
Filippos Avatar asked May 02 '14 12:05

Filippos


1 Answers

Finally I managed to figure this out, so I post this answer to my own question in case someone finds it helpful:

All I had to do was to .clear the list_store, rebuild it and use set_model to the TreeView.

The refresh function goes as below:

liststore.clear()

create_model_checks() # re-create liststore

treeView.set_model(liststore)

like image 173
Filippos Avatar answered Nov 03 '22 15:11

Filippos