Wxpython 对于少于3个字段的文件,listctrl超出范围
如果我有一个只有两列的分隔文本文件:Wxpython 对于少于3个字段的文件,listctrl超出范围,wxpython,mixins,Wxpython,Mixins,如果我有一个只有两列的分隔文本文件: "OBJECTID","FULL_ADDRESS" 573,"1001 QUAIL RIDGE RD" 7123,"1000 S 13TH ST" 如何让我的物品保持在范围内。 对于超过2列的任何其他db,此代码运行良好 def reloadList(self): lc = self.GetListCtrl() lc.DeleteAllItems() self.itemDataMap = {} length = 0
"OBJECTID","FULL_ADDRESS"
573,"1001 QUAIL RIDGE RD"
7123,"1000 S 13TH ST"
如何让我的物品保持在范围内。对于超过2列的任何其他db,此代码运行良好
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)
只需删除以下行:
lc.SetStringItem(idx, 2, data[2])
这一行设置了第三列。因为您没有3列,所以不需要该代码
您还可以执行len(数据)并执行以下操作:
if len(data) == 3:
lc.SetStringItem(idx, 2, data[2])
然后你可以处理这两种情况