Python textctrl setstyle无法正确读取插入点

问题描述

| 我在编写的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(),\"YELLOW\"))

    f.close()
基本上,此代码应为每个文件输出的前22个字符上色。 但这并不像我预期的那样工作。我对self.dir列表中的3个文件进行了测试。它为第一个文件输出的前22个字符上色。然后,对于后面附加的其他两个文件输出,它将为第三个文件的整个部分着色,但对第二个文件输出都不着色。 我打印出ѭ1进行调试。它是正确的。我不知道怎么了。有什么建议吗?     

解决方法

        固定。 在AppendText之前为GetInsertionPoint()命名另一个变量。否则,它将获得文件的结尾。