我在我编写的 GUI 中使用 python textctrl。在我阅读了几个文件后,我将文件的内容发布在 textctrl 中。由于它们都采用相似的格式,我尝试为前几个字符着色以标记每个文件输出的开始。我所做的是以下内容:
for file in self.dir:
f = open(file, 'r')
strInfo = f.read()
if self.dir.index(file) == 0:
self.textctrl.SetValue(strInfo)
self.textctrl.SetStyle(self.textctrl.GetInsertionPoint(),
self.textctrl.GetInsertionPoint()+22, wx.TextAttr("RED", "YELLOW"))
else:
self.textctrl.AppendText(strInfo)
self.textctrl.SetStyle(self.textctrl.GetInsertionPoint(),
self.textctrl.GetInsertionPoint()+22, wx.TextAttr("RED", "YELLOW"))
f.close()
基本上,这段代码应该为每个文件输出的前 22 个字符着色。
但它不像我预期的那样工作。我测试了 self.dir 列表中的 3 个文件。它将第一个文件输出的前 22 个字符着色。然后对于后面附加的其他两个文件输出,它为第三个文件的整个部分着色,但对第二个文件输出不着色。
我打印了GetInsertionPoint()
要调试的。它是正确的。我不知道出了什么问题。有什么帮助建议吗?