[Glade-users] gtk_combo_box_append_text() problem
Arigead
captain.deadly at gmail.com
Wed Oct 22 05:47:34 EDT 2008
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Thanks a million for that Carlos I'll go through your code and learn
something about programming gtk, if not some Portuguese ;-)
Carlos Pereira wrote:
> 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:
> 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?
_______________________________________________
Glade-users maillist - Glade-users at lists.ximian.com
http://lists.ximian.com/mailman/listinfo/glade-users
>>
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFI/va1XlbjSJ5n4BARApARAJ9ekZ6kithU+u2nOX7jyl0bB31MXACg1bIa
QW98qrZz58hchDLOl+TKQAY=
=DmYR
-----END PGP SIGNATURE-----
More information about the Glade-users
mailing list