C Gtk + 2 Glade3:我怎样才能将SourceBuffer设置为从glade加载的GtkSourceView?
我正在尝试将.c文件加载到
GtkSourceView
小部件中。
使用C语言,使用Gtk + 2.22.1和Glade 3.6.7以及GtkSourceView 2.10.1。
我注意到在Glade UI中我只能配置一个SourceView
来保持一个TextBuffer
;我没找到SourceBuffer
组件。所以,我在没有默认缓冲区的Glade中创建了一个SourceView
。现在我想将SourceBuffer
设置为我的SourceView
组件的缓冲区。
gtk_source_view_new_with_buffer()
是我发现将SourceBuffer
附加到SourceView
的唯一方法。问题是这个函数正在创建一个SourceView
,我想将一个SourceBuffer
附加到已经创建的用Glade构建的SourceView
。我怎样才能做到这一点?
我没有粘贴任何代码,因为没有要显示的代码。我刚刚创建了一个带有一些UI组件的Glade文件以及ID为14ѭ的SourceView-2
组件。
在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
我该怎么做才能解决这个问题?
谢谢!
没有找到相关结果
已邀请:
1 个回复
bab
已经有了一个缓冲区。获得它与获得常规文本缓冲区的方式相同:
这是因为
是
的子类,因此文本视图函数也可以使用它。 编辑: 这是一个有效的程序和glade文件。 程序:
格莱德档案: