所以我终于明白了PyGTK是如何工作的,我正在研究一个简单的SQLite管理器应用程序。
要显示查询结果,我正在使用带有gtk.TreeView的gtk.ScrolledWindow。我设法添加甚至更改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"],["jane@example.com"],["password"])
我知道我可以使用像
这样的东西 self.query_results = gtk.ListStore(*[str]*len(columns))
但是显然gtk.ListStore在创建后不能更改它的模型,那么我该如何更新这个查询表呢?每次运行不同的查询时,是否需要销毁Treeview并再次绘制它?
谢谢,这是我关于StackOverflow的第一个问题,所以请原谅我没有遵循的任何错误/发布指南。
答案 0 :(得分:5)
您可以使用gtk.TreeView.set_model
将新模型分配给TreeView。因此,您可以为每组结果生成一个新模型,然后设置TreeView以显示该模型。