微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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()命名另一个变量。否则,它将获得文件的结尾。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。