[Glade-users] gtk_combo_box_append_text() problem
Carlos Pereira
carlao2005 at gmail.com
Tue Oct 21 08:58:55 EDT 2008
Hello,
Here is my code to populate a drop down with text.
I use it in a C++ program, so I pass a vector of strings to populate
the dropdown. It should be easy to change it to use char *.
The comments are in portuguese, sorry.... :-)
Best regards
Carlos
// esta funcao preenche qualquer dropdown simples, 1 coluna de string
void preenche_drop(GtkWidget *DROP, vector<string> CONTEUDO)
{
// preenche um drop down com as strings dentro do vetor CONTEUDO informado
// zera o conteudo atual do drop down
gtk_cell_layout_clear(GTK_CELL_LAYOUT(DROP));
int cont;
GtkListStore *list_store;
GtkCellRenderer *renderer;
GtkTreeIter iter;
list_store = gtk_list_store_new (1, G_TYPE_STRING);
for(cont=0; cont < CONTEUDO.size(); cont++)
{
char conteudo[130];
sprintf(conteudo, "%s", CONTEUDO.at(cont).c_str());
// Add a new row to the model
gtk_list_store_append (list_store, &iter); // add linha vazia
e faz iter apontar para ela
// armazena um valor na lista, na linha apontada por iter, nas
colunas indicadas
// 0 - primeira coluna, e o conteudo da coluna. A lista termina com -1
gtk_list_store_set (list_store, &iter, 0, conteudo, -1);
}
gtk_combo_box_set_model(GTK_COMBO_BOX(DROP), GTK_TREE_MODEL(list_store));
renderer = gtk_cell_renderer_text_new();
gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(DROP), renderer, TRUE);
gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(DROP), renderer,
"text", 0, NULL);
// vou deixar aqui pra servir de referencia, mas nao eh verdade para todo
// dropdown criado, pode-se querer ele vazio para que sua alteracao
// chame uma callback function
//mostra o primeiro item no drop down
//gtk_combo_box_set_active(GTK_COMBO_BOX(drop_bds), 0);
}
On Tue, Oct 21, 2008 at 4:48 AM, Arigead <captain.deadly at gmail.com> wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> jonathan at blueplanet.cl wrote:
>> Hi,
>>
>>> Basically in my C code I get the comboBox with gtk_builder_get_object()
>>> and then call gtk_combo_box_append_text() this gives me an error:
>>>
>>> (gmpg:12154): Gtk-CRITICAL **: gtk_combo_box_append_text: assertion
>>> `GTK_IS_LIST_STORE (combo_box->priv->model)' failed
>>
>> Did you created the GtkListStore model for that combo box? That warning
>> was produced because you didn't set the proper model.
>>
>> Check the info of gtk_combo_box_set_model ().
>>
>
> Thanks All for getting back to me,
>
> I'm a bit confused by the GtkListStore model now. If I want to just
> store a list of strings I create a GtkListStore:
>
> GtkListStore *list_store;
> list_store = gtk_list_store_new (1, G_TYPE_STRING);
>
> Now set this to be the model of my combobox:
>
> gtk_combo_box_set_model((GtkComboBox *) MyComboBox,
> (GtkTreeModel *)list_store);
>
> That has gotten rid of the error message OK but I can't add to the list
> of items in the combobox. I've tried adding to the ListStore and the
> Combobox but nothing shows up when I display the interface.
>
> GtkTreeIter iter;
>
> /* Add a new row to the model */
> gtk_list_store_append (list_store, &iter);
> gtk_list_store_set (list_store, &iter, 0, "Hello", -1);
>
> /* Simply add to the combobox */
> gtk_combo_box_append_text((GtkComboBox *)vehicleList, "Hello");
>
>
> Neither of those two methods raise an error on compile time but nothing
> is in the drop down list at all?
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.6 (GNU/Linux)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
>
> iD8DBQFI/YlWXlbjSJ5n4BARAqfqAJ9JW10LnXnCkv1xjNCaVkaDWyWPqQCfcTTY
> KN+klpRVEb4voet9L4SSNF8=
> =gdpy
> -----END PGP SIGNATURE-----
> _______________________________________________
> Glade-users maillist - Glade-users at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/glade-users
>
--
=============================================
Carlos José de Almeida Pereira
Ilhéus - Bahia - Brasil
BLOG:
http://starfightercarlao.blogspot.com
http://starfightercarlaoenglish.blogspot.com (english version)
"Felicidade se acha é em horinhas de descuido."
"Qualquer amor já é um pouquinho de saúde, um descanso na loucura."
(Guimarães Rosa, ambas)
More information about the Glade-users
mailing list