使用GTK3 SourceView突出显示语法

时间:2012-07-06 09:10:32

标签: python gtk3 gtksourceview

如何使用GTK3在GtkSourceView中启用语法突出显示?我的代码不起作用。

# HTML view
self.scrolledwindow_html = builder.get_object('scrolledwindow_html')
self.sourceview_html = GtkSource.View()
self.buffer_html = self.sourceview_html.get_buffer()

lang_manager = GtkSource.LanguageManager()
self.buffer_html.set_language(lang_manager.get_language('html'))
self.scrolledwindow_html.add(self.sourceview_html)

发出错误:

  

AttributeError:'TextBuffer'对象没有属性'set_language'

1 个答案:

答案 0 :(得分:3)

似乎sourceview使用Gtk.TextBuffer(不知道语法突出显示)而不是GtkSource.Buffer(确实如此)初始化自己。通过首先使缓冲区强制它使用您选择的Buffer,并告诉View使用该对象:

 self.buffer_html = GtkSource.Buffer()
 self.sourceview_html = GtkSource.View.new_with_buffer(self.buffer_html)