我用builder创建了一个GtkComboBoxEntry,想从ini里面读取user list并加入到这个组合框的列表里,这下就纠结了,builder的创建不是_text版本(创建时以_new_text结尾)!靠,我研究了半天的GtkTreeModel,失败了,创建出来文本是空的。
后来上gtkforums.com终于找到了答案,算了,不写了,上代码。
/* 节选的,combo就是前面说的GtkComboBoxEntry */ GtkListStore *lst = gtk_list_store_new (1, G_TYPE_STRING); gtk_combo_box_set_model (GTK_COMBO_BOX (combo), GTK_TREE_MODEL (lst)); gtk_combo_box_entry_set_text_column(GTK_COMBO_BOX_ENTRY(combo), 0); /* 我也不明白这个是什么意思,但是原文里面有 */ gtk_combo_box_append_text (GTK_COMBO_BOX (combo), "first"); gtk_combo_box_append_text (GTK_COMBO_BOX (combo), "second");
其实就是set一个空model(怪不得我先前用append_text时会提示assert失败)。
另请参阅:
http://library.gnome.org/devel/gtk/stable/GtkBuilder.html
http://library.gnome.org/devel/gtk/stable/GtkComboBox.html
http://library.gnome.org/devel/gtk/stable/GtkComboBoxEntry.html
http://library.gnome.org/devel/gtk/stable/GtkCellLayout.html
原文地址点这里。