2012-06-17 24 views
0

我有一个基本上从ListCtrl制作的程序,并有一个添加按钮,一个编辑按钮和一个删除按钮。你可以想象,并不是非常困难(我认为很难,因为它与线性编程不同,但我正在学习)。重拍ListCtrl

显示的数据取自数据库,根据具体情况添加,编辑或删除一些数据。

我想现在,当数据改变时,ListCtrl完全重新加载(基本上,因为数据被排序)。这意味着:从数据库更新数据,然后用新数据从数据库创建一个新的ListCtrl,而不是单独更新ListCtrl和数据库。

这是将数据插入的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对象提前

感谢

回答

1

不知道问题是什么,但你应该把你的代码填充ListCtrl的方法中并调用它,只要你修改dat a为了更新列表。
要在再次填充列表之前清除列表,可以使用ListCtrl方法DeleteAllItems()ClearAll()

+0

OMG!当我为了我而复杂的事情时,我忘记了“容易的事情”。我认为它会起作用。谢谢!! – markmb

1

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