我試圖將一個.c文件加載到GtkSourceView
小部件中。C Gtk + 2 Glade3:我如何將SourceBuffer設置爲從glade加載的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文件,加上編號爲gtk_sourceview
的SourceView-2
組件。
在C文件我取得與
GtkSourceView *sourceview = GTK_WIDGET (gtk_builder_get_object (builder, "gtk_sourceview"));
現在缺少的是如何創建一個SourceBuffer
並將其連接到SourceView
組件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
我能做些什麼來解決這個問題?
謝謝!
你得到任何編譯警告,從我的角度來看,你應該得到至少一個約兼容的指針decalring和設置sorucebuffer – drahnr 2011-03-02 17:21:36