我已经看到了一些在 Python pygtk 中的 textview 中制作彩色文本的方法。问题似乎是它只会以该颜色打印文本或使整行具有该颜色,而不是某些项目使它们具有某种颜色。
我希望它在我输入“”的地方,即颜色为蓝色。或者如果文本视图中有“字符串”,它将是橙色或任何类型的
如果有一个“#comment”,那么它将是斜体和灰色。
不确定它是否有帮助,但我有一部分在我输入时会将文本写入页面。是否可以保持这种语法着色处于活动状态?
我希望这是有道理的。
任何帮助深表感谢!谢谢!
用于GtkSourceView
语法高亮。不要重新发明轮子。
一般来说,我想说的是,你正在寻找的是使用正则表达式(re
模块,这里有很多关于这个的问题......可能有些是你需要的确切模式)来找到你上面提到的模式你的TextBuffer
. 这意味着您需要将信号连接到缓冲区,以便查看用户键入的内容。然后,您将需要一组TextTag
s(每个格式化规则/模式一个标记)来应用于正则表达式与您描述的模式匹配的缓冲区区域。最后,您希望将标签应用于缓冲区,并且这些TextTag
s 可以以多种方式重新格式化文本显示TextView
(如文档所述here)。
如果没有任何提供的代码,很难准确确定您可能遇到问题的位置。
希望它为您指明正确的方向...
请注意,如果您覆盖 GTK 主题,其他用户可能会在 s 中有一个带有橙色背景的主题TextView
,因此您应该小心确保它在视觉上独立于您拥有的主题。