Python Pygtk动态地在Text View中制作彩色标签

时间:2013-01-07 18:39:22

标签: python colors tags textview pygtk

我在Python pygtk中看到了一些在textview中制作彩色文本的方法。问题似乎只是打印那种颜色的文字,或者使整条线变成颜色而不是某些项目使它们成为某种颜色。

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

如果有'#comment'那么它将是斜体和灰色。

不确定它是否有帮助,但我有一个部分,因为我在键入它时将文本写入页面。是否可以保持这种语法着色活动?

我希望这是有道理的。

非常感谢任何帮助!谢谢!

2 个答案:

答案 0 :(得分:2)

使用GtkSourceView进行语法突出显示。不要重新发明轮子。

答案 1 :(得分:0)

一般来说,你要找的是使用正则表达式(re模块,这里有很多问题......可能是你需要的确切模式)在TextBuffer找到您在上面提到的模式。这意味着您需要将信号连接到缓冲区,以便查看用户键入的内容。然后,您将需要一组TextTag s(每个格式规则/模式一个标记)以应用于缓冲区中正则表达式与您描述的模式匹配的区域。最后,您希望apply the tags到缓冲区,这些TextTag可以通过一系列方式(as the documentation says here)重新格式化TextView中的文本显示。

如果没有提供任何代码,很难确切地知道您可能遇到问题的地方。

希望它指出你正确的方向......

请注意,如果您覆盖GTK主题,那么另一个用户可以拥有一个主题,例如TextView中的橙色背景,所以你应该小心确保它在视觉上与你的主题无关。