试图将字符串写入ListCtrl,我不完全理解逻辑这是正确的方法吗?
self.rightPanel = wx.ListCtrl(spliter, -1, style=wx.LC_REPORT)
self.rightPanel.InsertColumn(0, 'LineNumber')
self.rightPanel.InsertColumn(1, 'log')
self.rightPanel.SetColumnWidth(0, 8)
self.rightPanel.SetColumnWidth(1, 80)
def writeConsole(self,str):
item = wx.ListItem()
item.SetText(str)
item.SetTextColour(wx.RED)
item.SetBackgroundColour(wx.BLACK)
index = self.rightPanel.GetItemCount()
self.rightPanel.InsertItem(item)
self.rightPanel.SetStringItem(index, 0, str(index))
self.rightPanel.SetStringItem(index, 1, item.GetText())
1-为什么文本不以颜色显示?
为什么在listctrl中有两种不同的文本显示方法?
ListCtrl.InsertItem()
ListCtrl.SetStringItem()
我认为insertitem只是将项加载到list.setstring,但显示项内容。(不确定)
最佳答案
SetTextColour()
和SetBackgroundColour()
是整个listctrl的方法,而不是项的方法。
对于您应该使用的项(仅对报表模式有效):
GetItemTextColour(idx_item)
SetItemTextColour(idx_item, col)
InsertItem(index, item)
(这里的item是wx.ListItem
的一个实例)是在listctrl上添加新行的InsertItem()
方法之一。SetStringItem(index, col, label, imageId=-1)
(其中index和col参数是单元格的行和列索引)允许在任何选定列中设置字符串。其他插入方法仅适用于第一列。参考文献:wxpython,noel rappin和robin dunn。