首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重新制作ListCtrl

重新制作ListCtrl
EN

Stack Overflow用户
提问于 2012-06-18 02:51:48
回答 2查看 224关注 0票数 0

我有一个程序,基本上由一个ListCtrl,并有一个添加按钮,一个编辑按钮和一个删除按钮。正如你可以想象的那样,并不是很难(我认为很难,因为它不同于线性编程,但我正在学习)。

显示的数据取自数据库,并根据情况添加、编辑或删除某些数据。

现在我希望,当数据发生变化时,ListCtrl会完全重新加载(基本上,因为数据是排序的)。这意味着:从数据库中更新数据,然后使用新数据从数据库中创建一个新的数据库,而不是分别更新ListCtrl和ListCtrl。

这是在面板中插入数据的代码(应该重新加载ListCtrl的对象是一个对话框,从不同的地方调用它):

代码语言:javascript
复制
i = 0
for data in coches:
    index = self.lista.InsertStringItem(i, data[0])
    self.lista.SetStringItem(index, 1, str(data[1]))
    self.lista.SetStringItem(index, 2, str(data[2]))
    self.lista.SetStringItem(index, 3, str(data[3]))
    self.lista.SetStringItem(index, 4, str(data[4]))
    if((index+1) % 2 == 0):
        self.lista.SetItemBackgroundColour(index,gris)
    i += 1

“ListCtrl”是数据库中的列表,"coches“是coches对象

提前感谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-18 03:07:12

不确定问题是什么,但是您应该将用于填充ListCtrl的代码放在一个方法中,并在修改数据以更新列表时调用它。

要在再次填充列表之前清除该列表,可以使用ListCtrl方法DeleteAllItems()ClearAll()

票数 1
EN

Stack Overflow用户

发布于 2012-06-19 05:41:36

就我个人而言,我喜欢使用ObjectListView而不是普通的ListCtrl。我甚至写了一个关于这个主题的tutorial。今年,我用SQLAlchemy写了一篇关于wxPython and CRUD的教程。我怀疑这些也会对你有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11073937

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档