listctrl超出3个字段的文件超出范围

时间:2013-10-10 22:13:16

标签: wxpython mixins

如果我有一个只有2列的分隔文本文件:

"OBJECTID","FULL_ADDRESS"
573,"1001 QUAIL RIDGE RD"
7123,"1000 S 13TH ST"

如何判断我的物品是否在范围内 对于具有多于2列的任何其他数据库,此代码运行正常。

def reloadList(self):
    lc = self.GetListCtrl()
    lc.DeleteAllItems()
    self.itemDataMap = {}
    length = 0
    for row in self.sortedlist: 
        self.itemDataMap[length] = row
        length = length + 1            


items = self.itemDataMap.items()
for key, data in items:
    idx = lc.InsertStringItem(sys.maxint, data[0])
    lc.SetStringItem(idx, 0, data[0])
    lc.SetStringItem(idx, 1, data[1])
    lc.SetStringItem(idx, 2, data[2])
    lc.SetItemData(idx, key)
lc.SetColumnWidth(0, wx.LIST_AUTOSIZE)
lc.SetColumnWidth(1, wx.LIST_AUTOSIZE)
lc.SetColumnWidth(2, wx.LIST_AUTOSIZE)

1 个答案:

答案 0 :(得分:0)

只需删除以下行:

lc.SetStringItem(idx, 2, data[2])

该行是设置第3列的内容。由于您没有3列,因此不需要该代码。

您也可以执行len(数据)并执行以下操作:

if len(data) == 3:
    lc.SetStringItem(idx, 2, data[2])

然后你可以处理这两种情况。