pygtk TreeView 内容更新/刷新
我终于写了一个小应用程序,它可以从sqlite数据库读取数据,并把结果显示在一个树形视图中。另一个窗口(在不同的模块里)可以用来添加新记录或更新已有记录。在写入数据库后,它会关闭这个窗口。
现在我想做的是更新“主”窗口(包含树形视图),让它显示新的数据集。我到目前为止已经做到这一点,但问题是:a) 原来的主窗口还在,而新的窗口又在它上面打开,显示的是想要的(新)数据集。
我该怎么做才能解决这个问题呢?有没有人能给我一些建议或例子?
也许我需要说明一下,我的主窗口模块的__init__
函数在运行时做了所有的事情:创建界面,读取数据库并显示所有数据。我怀疑这可能是问题所在,但我尝试了几乎所有将其拆分成不同部分(函数)的组合,还是没有成功。
--编辑--
好的,我现在有很多不同的函数,__init__
现在创建主界面,而其他函数则从数据库读取数据并将其放到树形视图中。
我尝试使用定时器,但这个选项似乎也不合适,因为 gtk.TreeView
没有这样的功能。
1 个回答
8
最后我终于搞明白了这个问题,所以我把这个答案发出来,希望对其他人有帮助:
我只需要做的就是用 .clear
清空列表存储,然后重新构建它,最后用 set_model
把它设置到树形视图上。
刷新功能的代码如下:
liststore.clear()
create_model_checks() # 重新创建列表存储
treeView.set_model(liststore)