我在我编写的GUI中使用python textctrl。在我阅读了几个文件之后,我在textcrl中发布了文件的内容。因为它们的格式都是相似的,所以我尝试给前几个字符涂上颜色,以标记出每个文件输出的开头。我所做的是:
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个字符着色。
但它并不像我预期的那样有效。我测试了3个文件self.dir.目录列表。它为第一个文件输出的前22个字符着色。然后,对于附加在后面的其他两个文件输出,它将为第三个文件的整个部分着色,但不为第二个文件输出着色。在
我打印了GetInsertionPoint()
进行调试。这是正确的。我不知道怎么了。有什么帮助建议吗?在
固定的。 为GetInsertionPoint()在AppendText之前命名另一个变量。否则,它将得到文件的结尾。在
相关问题 更多 >
编程相关推荐