如何使用 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)
给出错误:
属性错误:"文本缓冲区"对象没有属性"set_language"
似乎源视图正在使用Gtk.TextBuffer
(不知道语法突出显示)而不是GtkSource.Buffer
(确实如此)初始化自身。强制它使用您选择的缓冲区,方法是先创建缓冲区,并告诉View
完全使用该对象:
self.buffer_html = GtkSource.Buffer()
self.sourceview_html = GtkSource.View.new_with_buffer(self.buffer_html)