因此,我设法以给定的顺序获取项目列表,以便正确地填充数据库。当转换项目以填充显示订单中包含的项目的listctrl小部件时。。。。。。。我明白了:
左侧窗口显示添加第一项时发生的情况。。。。右边的窗户就是我的问题所在。它实际上覆盖了第一项的文本,并添加了一个空白列。。。。但是价格加起来是正确的,所有的项目都被正确地添加到sql数据库中。。。所以我的问题在于如何填充我的列表
下面显示的代码是填充前面显示的列表控制的函数。。。我好像找不到我哪里出错了。。。有什么想法吗?在
重新启动列表的代码
def refresh_list2(self, event):
"""Place the names of each ItemEntry into the list"""
index = 0
self.entrydict = {}
self.list2.DeleteAllItems()
for entry in self.ordite.list_entries():
if entry.Order_ID == self.entry.Order_ID:
self.list2.InsertStringItem(index,self.entry.Order_ID)
self.list2.SetStringItem(index,1,self.entryit.Item_ID)
self.list2.SetStringItem(index,2,str(self.entryit.Item_Price))
self.list2.SetStringItem(index,3,str(self.entryit.Item_Qty))
self.entrydict[index] = entry
index += 1
将项目插入数据库的代码
^{pr2}$仍在考虑在后端创建一个函数,该函数根据给定的order\u ID存储item对象的筛选列表
哦,
wx.ListCtrl
的乐趣。;—)我花了很多时间与这些问题做斗争,然后围绕它编写一个包装器类,使之大大减轻痛苦。在
你的
refresh_list2()
代码有几个问题。。。在如果你想把
其次,
InsertStringItem()
将返回它插入该项的索引,因此您必须在随后对SetStringItem()
的任何调用中使用该值。在试试这样的。。。在
…这应该可以获得所需的结果,但是如果随后从列表中删除某个项,
self.entrydict
可能会出现问题,因为索引值可能会更改。在更新
不知道你在做什么,但是下面这个独立的例子对我有用。。。在
^{pr2}$更新2
啊。我想您是想插入本地
entry
变量中的项,而不是实例属性。。。在相关问题 更多 >
编程相关推荐