0

我已经看到了一些在 Python pygtk 中的 textview 中制作彩色文本的方法。问题似乎是它只会以该颜色打印文本或使整行具有该颜色,而不是某些项目使它们具有某种颜色。

我希望它在我输入“”的地方,即颜色为蓝色。或者如果文本视图中有“字符串”,它将是橙色或任何类型的

如果有一个“#comment”,那么它将是斜体和灰色。

不确定它是否有帮助,但我有一部分在我输入时会将文本写入页面。是否可以保持这种语法着色处于活动状态?

我希望这是有道理的。

任何帮助深表感谢!谢谢!

4

2 回答 2

2

用于GtkSourceView语法高亮。不要重新发明轮子。

于 2013-01-08T09:31:00.980 回答
0

一般来说,我想说的是,你正在寻找的是使用正则表达式(re模块,这里有很多关于这个的问题......可能有些是你需要的确切模式)来找到你上面提到的模式你的TextBuffer. 这意味着您需要将信号连接到缓冲区,以便查看用户键入的内容。然后,您将需要一组TextTags(每个格式化规则/模式一个标记)来应用于正则表达式与您描述的模式匹配的缓冲区区域。最后,您希望将标签应用于缓冲区,并且这些TextTags 可以以多种方式重新格式化文本显示TextView如文档所述here)。

如果没有任何提供的代码,很难准确确定您可能遇到问题的位置。

希望它为您指明正确的方向...

请注意,如果您覆盖 GTK 主题,其他用户可能会在 s 中有一个带有橙色背景的主题TextView,因此您应该小心确保它在视觉上独立于您拥有的主题。

于 2013-01-07T23:50:30.983 回答