2012-07-06 136 views
3

如何在使用GTK3的GtkSourceView中啓用語法高亮顯示?我下面的代碼不起作用。使用GTK3語法高亮顯示SourceView

# 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' object has no attribute 'set_language'

回答

3

這似乎是sourceview與Gtk.TextBuffer(不知道語法高亮)初始化本身,而不是GtkSource.Buffer(它)。迫使它通過將緩衝器中的第一,並告訴View準確使用該對象來使用你的緩衝區的選擇:

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

感謝。有效。 – Jishnu 2012-07-06 09:46:38

+0

您可以監視此錯誤的狀態[此處](https://bugzilla.gnome.org/show_bug.cgi?id=643732)。 – ptomato 2012-07-06 14:56:17