wxPython ListCtrl:写入彩色文本
尝试将字符串写入 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-为什么文本不以颜色显示?
2-为什么ListCtrl中有2种不同的显示文本的方法?
ListCtrl.InsertItem()
ListCtrl.SetStringItem()
我认为 InsertItem 只是将项目加载到 list.SetString 但显示项目内容。(不确定)
Trying to write string to a ListCtrl , I don't understand the logic completely. Is this the proper way?
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-Why text is not displayed in color ?
2-Why there are 2 different methods for display text in ListCtrl?
ListCtrl.InsertItem()
ListCtrl.SetStringItem()
I think InsertItem just loads the item to list.SetString but displays the item content.(Not Sure)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
SetTextColour()
和SetBackgroundColour()
是整个 listctrl 的方法,而不是项目的方法。对于您应该使用的项目(仅对报告模式有效):
InsertItem(index, item)
(此处的 item 是wx.ListItem
的实例)是>InsertItem()
方法在 ListCtrl 上添加新行。SetStringItem(index, col, label, imageId=-1)
(其中index和col参数是单元格的行索引和列索引)允许在任何选定的列中设置字符串。其他插入方法仅适用于第一列。参考: wxPython in Action,Noel Rappin 和 Robin Dunn。
SetTextColour()
andSetBackgroundColour()
are methods of the entire listctrl, not of items.For items you should use (valid only for report mode):
InsertItem(index, item)
(item here is an instance ofwx.ListItem
) is one of theInsertItem()
methods to add a new row on a ListCtrl.SetStringItem(index, col, label, imageId=-1)
(where index and col parameters are the row and column indexes for a cell) allows setting strings in any selected column. Other insert methods work only for the first column.Reference: wxPython in Action, Noel Rappin and Robin Dunn.