2016-12-16 4 views
0

私はcodeblocksとgladeを使ってcプログラムを書いています。最初は問題は自分のコードのためだと思った。私はgladeを使わないオンラインで見つけたサンプルコードを試しました - GTKのみ - それは働きました。それから私はウィンドウとテキストビューだけで新しい隙間を試しましたが、うまくいきませんでした。Glade Textviewにテキストが表示されない

GtkTextBuffer *buffer= gtk_text_view_get_buffer(GTK_TEXT_VIEW(textview1)); 
gtk_text_buffer_get_iter_at_offset(buffer, &iter, 0); 
gtk_text_buffer_insert(buffer, &iter, "Plain text ... it's working\n", -1); 

//gtk_text_buffer_set_text (buffer, "Hello, this is some text", -1); 
gtk_widget_show_all(window); 
gtk_main(); 

私もコメント行を試しました。ですから、問題は、グレイドテキストビューにテキストを表示させる方法です。

また、葉っぱ自体を使って置いたハードコードされたテキストは表示されませんでした。 ここに完全なコードがあります。

GtkWidget *textview1; 

int main(int argc, char *argv[]) 
{ 
GtkBuilder  *builder; 
GtkWidget  *window; 
gtk_init(&argc, &argv); 
GtkTextIter iter; 

builder = gtk_builder_new(); 
gtk_builder_add_from_file (builder, "Unsaved 1.glade", NULL); 

window = GTK_WIDGET(gtk_builder_get_object(builder, "window1")); 
gtk_builder_connect_signals(builder, NULL); 

g_object_unref(builder); 
textview1=GTK_WIDGET(gtk_builder_get_object(builder, "textview1")); 



GtkTextBuffer *buffer= gtk_text_view_get_buffer(GTK_TEXT_VIEW(textview1)); 
gtk_text_buffer_get_iter_at_offset(buffer, &iter, 0); 
gtk_text_buffer_insert(buffer, &iter, "Plain text ... it's working\n", -1); 
gtk_text_buffer_set_text (buffer, "Hello, this is some text", -1); 
gtk_widget_show_all(window); 
gtk_main(); 
struct Student_t* arrayOfStudents=load(); 
return 0; 
} 

空き地ファイル:あなたがg_object_unref(builder);を呼び出すと

<interface> 
<requires lib="gtk+" version="2.16"/> 
<!-- interface-naming-policy project-wide --> 
<object class="GtkWindow" id="window1"> 
<property name="window_position">center</property> 
<property name="default_width">1000</property> 
<property name="default_height">600</property> 
<child> 
<object class="GtkScrolledWindow" id="scrolledwindow1"> 
<property name="visible">True</property> 
<property name="can_focus">True</property> 
<property name="hscrollbar_policy">automatic</property> 
<property name="vscrollbar_policy">automatic</property> 
<child> 
<object class="GtkVBox" id="vbox2"> 
<property name="visible">True</property> 
<property name="orientation">vertical</property> 
<child> 
<object class="GtkHBox" id="hbox2"> 
<property name="visible">True</property> 
<child> 
<object class="GtkButton" id="button1"> 
<property name="label" translatable="yes">gtk-add</property> 
<property name="visible">True</property> 
<property name="can_focus">True</property> 
<property name="receives_default">True</property> 
<property name="use_stock">True</property> 
<property name="image_position">top</property> 
</object> 
<packing> 
<property name="position">0</property> 
</packing> 
</child> 
<child> 
<object class="GtkButton" id="button2"> 
<property name="label" translatable="yes">gtk-refresh</property> 
<property name="visible">True</property> 
<property name="can_focus">True</property> 
<property name="receives_default">True</property> 
<property name="use_stock">True</property> 
</object> 
<packing> 
<property name="position">1</property> 
</packing> 
</child> 
<child> 
<object class="GtkButton" id="button3"> 
<property name="label" translatable="yes">gtk-find</property> 
<property name="visible">True</property> 
<property name="can_focus">True</property> 
<property name="receives_default">True</property> 
<property name="use_stock">True</property> 
</object> 
<packing> 
<property name="position">2</property> 
</packing> 
</child> 
<child> 
<object class="GtkButton" id="button4"> 
<property name="label" translatable="yes">Statistics</property> 
<property name="visible">True</property> 
<property name="can_focus">True</property> 
<property name="receives_default">True</property> 
<property name="use_underline">True</property> 
</object> 
<packing> 
<property name="position">3</property> 
</packing> 
</child> 
<child> 
<object class="GtkButton" id="button5"> 
<property name="label" translatable="yes">Normalize</property> 
<property name="visible">True</property> 
<property name="can_focus">True</property> 
<property name="receives_default">True</property> 
<property name="xalign">0.44999998807907104</property> 
<property name="yalign">0.44999998807907104</property> 
</object> 
<packing> 
<property name="position">4</property> 
</packing> 
</child> 
<child> 
<object class="GtkButton" id="button10"> 
<property name="label" translatable="yes">gtk-edit</property> 
<property name="visible">True</property> 
<property name="can_focus">True</property> 
<property name="receives_default">True</property> 
<property name="use_stock">True</property> 
</object> 
<packing> 
<property name="position">5</property> 
</packing> 
</child> 
</object> 
<packing> 
<property name="expand">False</property> 
<property name="position">0</property> 
</packing> 
</child> 
<child> 
<object class="GtkHBox" id="hbox3"> 
<property name="visible">True</property> 
<child> 
<object class="GtkButton" id="button6"> 
<property name="label" translatable="yes">gtk-open</property> 
<property name="visible">True</property> 
<property name="can_focus">True</property> 
<property name="receives_default">True</property> 
<property name="use_stock">True</property> 
</object> 
<packing> 
<property name="position">0</property> 
</packing> 
</child> 
<child> 
<object class="GtkButton" id="button7"> 
<property name="label" translatable="yes">gtk-save</property> 
<property name="visible">True</property> 
<property name="can_focus">True</property> 
<property name="receives_default">True</property> 
<property name="use_stock">True</property> 
</object> 
<packing> 
<property name="position">1</property> 
</packing> 
</child> 
<child> 
<object class="GtkButton" id="button8"> 
<property name="label" translatable="yes">gtk-delete</property> 
<property name="visible">True</property> 
<property name="can_focus">True</property> 
<property name="receives_default">True</property> 
<property name="use_stock">True</property> 
</object> 
<packing> 
<property name="position">2</property> 
</packing> 
</child> 
<child> 
<object class="GtkButton" id="button11"> 
<property name="label" translatable="yes">Raise HL</property> 
<property name="visible">True</property> 
<property name="can_focus">True</property> 
<property name="receives_default">True</property> 
</object> 
<packing> 
<property name="position">3</property> 
</packing> 
</child> 
<child> 
<object class="GtkButton" id="button9"> 
<property name="label" translatable="yes">gtk-quit</property> 
<property name="visible">True</property> 
<property name="can_focus">True</property> 
<property name="receives_default">True</property> 
<property name="use_stock">True</property> 
</object> 
<packing> 
<property name="position">4</property> 
</packing> 
</child> 
</object> 
<packing> 
<property name="expand">False</property> 
<property name="position">1</property> 
</packing> 
</child> 
<child> 
<object class="GtkTextView" id="textview1"> 
<property name="visible">True</property> 
<property name="can_focus">True</property> 
<property name="buffer">textbuffer1</property> 
</object> 
<packing> 
<property name="position">2</property> 
</packing> 
</child> 
<child> 
<object class="GtkStatusbar" id="statusbar1"> 
<property name="visible">True</property> 
<property name="spacing">2</property> 
<child> 
<object class="GtkLabel" id="label1"> 
<property name="visible">True</property> 
<property name="label" translatable="yes">Mazen Sharkawy</property> 
</object> 
<packing> 
<property name="position">0</property> 
</packing> 
</child> 
<child> 
<object class="GtkLabel" id="label2"> 
<property name="visible">True</property> 
<property name="label" translatable="yes">Shorouk Assem</property> 
</object> 
<packing> 
<property name="position">2</property> 
</packing> 
</child> 
</object> 
<packing> 
<property name="expand">False</property> 
<property name="position">3</property> 
</packing> 
</child> 
</object> 
</child> 
</object> 
</child> 
</object> 
<object class="GtkDialog" id="dialog1"> 
<property name="border_width">5</property> 
<property name="type_hint">normal</property> 
<property name="has_separator">False</property> 
<child internal-child="vbox"> 
<object class="GtkVBox" id="dialog-vbox1"> 
<property name="visible">True</property> 
<property name="orientation">vertical</property> 
<property name="spacing">2</property> 
<child> 
<object class="GtkVBox" id="vbox1"> 
<property name="visible">True</property> 
<property name="orientation">vertical</property> 
<child> 
<object class="GtkHBox" id="hbox1"> 
<property name="visible">True</property> 
<child> 
<object class="GtkLabel" id="label1"> 
<property name="visible">True</property> 
<property name="label" translatable="yes">ID</property> 
</object> 
<packing> 
<property name="position">0</property> 
</packing> 
</child> 
<child> 
<object class="GtkEntry" id="entry1"> 
<property name="visible">True</property> 
<property name="can_focus">True</property> 
<property name="invisible_char">●</property> 
</object> 
<packing> 
<property name="position">1</property> 
</packing> 
</child> 
</object> 
<packing> 
<property name="position">0</property> 
</packing> 
</child> 
<child> 
<object class="GtkHBox" id="hbox2"> 
<property name="visible">True</property> 
<child> 
<object class="GtkLabel" id="label2"> 
<property name="visible">True</property> 
<property name="label" translatable="yes">Name</property> 
</object> 
<packing> 
<property name="position">0</property> 
</packing> 
</child> 
<child> 
<object class="GtkEntry" id="entry2"> 
<property name="visible">True</property> 
<property name="can_focus">True</property> 
<property name="invisible_char">●</property> 
</object> 
<packing> 
<property name="position">1</property> 
</packing> 
</child> 
</object> 
<packing> 
<property name="position">1</property> 
</packing> 
</child> 
<child> 
<object class="GtkHBox" id="hbox3"> 
<property name="visible">True</property> 
<child> 
<object class="GtkLabel" id="label3"> 
<property name="visible">True</property> 
<property name="label" translatable="yes">GPA</property> 
</object> 
<packing> 
<property name="position">0</property> 
</packing> 
</child> 
<child> 
<object class="GtkEntry" id="entry3"> 
<property name="visible">True</property> 
<property name="can_focus">True</property> 
<property name="invisible_char">●</property> 
</object> 
<packing> 
<property name="position">1</property> 
</packing> 
</child> 
</object> 
<packing> 
<property name="position">2</property> 
</packing> 
</child> 
<child> 
<object class="GtkHBox" id="hbox4"> 
<property name="visible">True</property> 
<child> 
<object class="GtkLabel" id="label4"> 
<property name="visible">True</property> 
<property name="label" translatable="yes">E-mail</property> 
</object> 
<packing> 
<property name="position">0</property> 
</packing> 
</child> 
<child> 
<object class="GtkEntry" id="entry4"> 
<property name="visible">True</property> 
<property name="can_focus">True</property> 
<property name="invisible_char">●</property> 
</object> 
<packing> 
<property name="position">1</property> 
</packing> 
</child> 
</object> 
<packing> 
<property name="position">3</property> 
</packing> 
</child> 
<child> 
<object class="GtkHBox" id="hbox6"> 
<property name="visible">True</property> 
<child> 
<object class="GtkLabel" id="label5"> 
<property name="visible">True</property> 
<property name="label" translatable="yes">Mobile</property> 
</object> 
<packing> 
<property name="position">0</property> 
</packing> 
</child> 
<child> 
<object class="GtkEntry" id="entry5"> 
<property name="visible">True</property> 
<property name="can_focus">True</property> 
<property name="invisible_char">●</property> 
</object> 
<packing> 
<property name="position">1</property> 
</packing> 
</child> 
</object> 
<packing> 
<property name="position">4</property> 
</packing> 
</child> 
<child> 
<object class="GtkHBox" id="hbox7"> 
<property name="visible">True</property> 
<child> 
<object class="GtkLabel" id="label6"> 
<property name="visible">True</property> 
<property name="label" translatable="yes">Age</property> 
</object> 
<packing> 
<property name="position">0</property> 
</packing> 
</child> 
<child> 
<object class="GtkEntry" id="entry6"> 
<property name="visible">True</property> 
<property name="can_focus">True</property> 
<property name="invisible_char">●</property> 
</object> 
<packing> 
<property name="position">1</property> 
</packing> 
</child> 
</object> 
<packing> 
<property name="position">5</property> 
</packing> 
</child> 
<child> 
<object class="GtkHBox" id="hbox8"> 
<property name="visible">True</property> 
<child> 
<object class="GtkLabel" id="label7"> 
<property name="visible">True</property> 
<property name="label" translatable="yes">City</property> 
</object> 
<packing> 
<property name="position">0</property> 
</packing> 
</child> 
<child> 
<object class="GtkEntry" id="entry7"> 
<property name="visible">True</property> 
<property name="can_focus">True</property> 
<property name="invisible_char">●</property> 
</object> 
<packing> 
<property name="position">1</property> 
</packing> 
</child> 
</object> 
<packing> 
<property name="position">6</property> 
</packing> 
</child> 
</object> 
<packing> 
<property name="position">1</property> 
</packing> 
</child> 
<child internal-child="action_area"> 
<object class="GtkHButtonBox" id="dialog-action_area1"> 
<property name="visible">True</property> 
<property name="layout_style">end</property> 
<child> 
<object class="GtkButton" id="button2"> 
<property name="label" translatable="yes">gtk-cancel</property> 
<property name="visible">True</property> 
<property name="can_focus">True</property> 
<property name="receives_default">True</property> 
<property name="use_stock">True</property> 
</object> 
<packing> 
<property name="expand">False</property> 
<property name="fill">False</property> 
<property name="position">0</property> 
</packing> 
</child> 
<child> 
<object class="GtkButton" id="button1"> 
<property name="label" translatable="yes">gtk-save</property> 
<property name="visible">True</property> 
<property name="can_focus">True</property> 
<property name="receives_default">True</property> 
<property name="use_stock">True</property> 
</object> 
<packing> 
<property name="expand">False</property> 
<property name="fill">False</property> 
<property name="position">1</property> 
</packing> 
</child> 
</object> 
<packing> 
<property name="expand">False</property> 
<property name="pack_type">end</property> 
<property name="position">0</property> 
</packing> 
</child> 
</object> 
</child> 
<action-widgets> 
<action-widget response="0">button2</action-widget> 
<action-widget response="0">button1</action-widget> 
</action-widgets> 
</object> 
<object class="GtkTextBuffer" id="textbuffer1"> 
<property name="text" translatable="yes">shit happens</property> 
</object> 
</interface> 
+0

もっとコードを表示してください。投稿したスニペットに何も問題はありません。バグは他の場所にあります。 – andlabs

+0

@andlabsコード全体を追加しました。 –

答えて

0

、あなたはもうbuilderを使用するつもりはないと言っています。 free(builder)と似ていますが、これはGObjectの参照カウントを使用していますが、これはより複雑で、この回答の範囲外です。要点は、g_object_unref()を呼び出した後でもまだbuilderを使用しようとしており、そのになりません。あなたのケースでは、そうしているので、変数textview1はあなたのテキストビューへの参照を取得しないので、GtkTextBuffer操作は機能しません。コードからg_object_unref()行を削除してください。すべて正常に動作します。

+0

削除しましたが問題は解決しません。何も変わっていません。 –

+0

その場合、あなたのグレードファイルも表示してください。 – andlabs

+0

グレイドファイルを追加しました –

関連する問題