重拍ListC

2024-10-03 02:36:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个程序,基本上是由listcrl创建的,有一个add按钮,一个edit按钮和一个delete按钮。正如你所想象的,不是很难(我觉得很难,因为它不同于线性编程,但我正在学习)。在

显示的数据来自数据库,根据情况添加、编辑或删除一些数据。在

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

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

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

“coches”是数据库中的列表,并且self.lista公司“是ListCtrl对象

提前谢谢


Tags: 数据对象self程序add数据库dataindex
2条回答

不确定是什么问题,但您应该将填充ListCtrl的代码放在一个方法中,并在修改数据时调用它以更新列表。
要在再次填充之前清除列表,可以使用ListCtrl方法DeleteAllItems()或{}。在

我个人喜欢使用ObjectListView而不是普通的ListCtrl。我甚至写了一篇关于这个主题的文章。今年,我用SQLAlchemy写了一篇关于wxPython and CRUD的教程。我想这些对你也有帮助。在

相关问题 更多 >