所以我终于明白了PyGTK是如何工作的,我正在开发一个简单的SQLite管理器应用程序。动态更改gtkListStore模型
要显示查询的结果,我使用gtk.ScrolledWindow和gtk.TreeView。我已经设法添加甚至根据需要更改ListStore对象中的值,但我不能做的是更改ListStore对象的模型。
例如,在一个查询我可能有两列的结果:
self.query_results = gtk.ListStore(str,str)
self.query_results.append(["1"],["John Doe"])
而在另外一个我可以得到更多的列:
self.query_results = gtk.ListStore(str,str,str,str)
self.query_results.append(["20"],["Jane"],["[email protected]"],["password"])
我知道我可以使用的东西像
self.query_results = gtk.ListStore(*[str]*len(columns))
但aparently gtk.ListStore不能让它的模型在创建后被更改,所以我会如何更新e这个查询表?我是否需要销毁Treeview并在每次运行不同的查询时再次绘制它?
谢谢,这是我在StackOverflow上的第一个问题,所以请原谅我没有遵循的任何错误/发布指南。
检出[libgda4](http://www.gnome-db.org/) - 它做你想做的事情,并有一个ListStore接口,可直接与底层数据库进行通信。 – ptomato