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

2024-10-04 01:26:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我在我编写的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()进行调试。这是正确的。我不知道怎么了。有什么帮助建议吗?在


Tags: 文件selfdirguiredfilewx着色