Я пытаюсь загрузить файл .c в виджет GtkSourceView
.
Использование языка C с Gtk+ 2.22.1 и Glade 3.6.7 и GtkSourceView 2.10.1.
Я заметил, что в пользовательском интерфейсе Glade я могу настроить только SourceView
для хранения TextBuffer
; Я не нашел компонент SourceBuffer
. Итак, я создал SourceView
в Glade без буфера по умолчанию. Теперь я хочу установить SourceBuffer
в качестве буфера моего компонента SourceView
.
gtk_source_view_new_with_buffer()
— это единственный способ присоединить SourceBuffer
к SourceView
. Проблема в том, что эта функция создает SourceView
, а я хочу присоединить SourceBuffer
к уже созданному SourceView
, созданному с помощью Glade. Как я могу это сделать?
Я не вставлял код, потому что его нечего показать. Я только что создал файл Glade с некоторым компонентом пользовательского интерфейса и компонентом SourceView-2
с идентификатором gtk_sourceview
.
В файле C я получаю компонент SourceView с помощью
GtkSourceView *sourceview = GTK_WIDGET (gtk_builder_get_object (builder, "gtk_sourceview"));
Чего не хватает, так это того, как создать SourceBuffer
и прикрепить его к компоненту SourceView
.
Спасибо!
Обновление: я пытался использовать:
GtkSourceBuffer *sourcebuffer = GTK_SOURCE_BUFFER(gtk_text_view_get_buffer(GTK_TEXT_VIEW(sourceview)));
Но я получил следующую ошибку утверждения:
(tour_de_gtk:13884): Gtk-CRITICAL **: IA__gtk_text_view_get_buffer: assertion `GTK_IS_TEXT_VIEW (text_view)' failed
Что я могу сделать, чтобы решить эту проблему?
Спасибо!