Problème avec une listview gtk+

[Résolu]
Signaler
Messages postés
127
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
5 août 2007
-
Messages postés
127
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
5 août 2007
-
Bonsoir tout le monde !
J'ai ptit souci avec gtk
J'ai une fonction qui ajoute une ligne dans un listview qui est
similaire à celle-ci:

void add_str_listview(char *str)
{
    gchar *g_str;
    GtkTreeIter p_iter;
    g_str=malloc(256);
    sprintf(g_str, "%s\0", str);
    gtk_list_store_append(p_list, &p_iter);
    gtk_list_store_set(p_list, &p_iter, 0, g_str, 1, TRUE, -1);
    g_free(g_str);
}

La compilation marche, mais lorsque je l'execute a partir
d'un terminal ce warning aparait:
(main:25346): Gtk-WARNING **: gtkliststore.c:822: Invalid column number 1 added to iter (remember to end your list of columns with a -1)

J'aimerai juste résoudre ce problème sachant que la listview est bien afficher
et la ligne est bien ajouté...
Juste ce warning qui m'irrite ...
Quelqu'un pourrait m'aider ?

5 réponses

Messages postés
571
Date d'inscription
vendredi 30 décembre 2005
Statut
Membre
Dernière intervention
12 juillet 2012
3
Très bien une seule colonne. Alors
    gtk_list_store_set(p_list, &p_iter, 0, g_str, 1, TRUE, -1);

ne te semble pas louche? Pourquoi passer un bool qui sort de nulle part?

void listview_add_str (gchar *str)
{
    GtkTreeIter iter;
    gtk_list_store_append(p_list, &iter);
    gtk_list_store_set(p_list, &iter, 0,str, -1);
}
Messages postés
571
Date d'inscription
vendredi 30 décembre 2005
Statut
Membre
Dernière intervention
12 juillet 2012
3
Salut,
La 1re colonne du liststore est de type G_TYPE_STRING et la deuxième G_TYPE_BOOLEAN?
Fais voir comment tu crées les colonnes.
Messages postés
571
Date d'inscription
vendredi 30 décembre 2005
Statut
Membre
Dernière intervention
12 juillet 2012
3
Autre chose préférer g_malloc() et pas besoin de \0 dans le sprintf car sprintf termine la chaine formatée par 0. Aussi tu peux caster le str en gchar* pour éviter de le dupliquer inutilement. En fait la fonction fait trois lignes.
Messages postés
127
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
5 août 2007

Ok, merci de tes conseil
Bah en faite j'ai qu'une seul colone dans ma list view

p_list=gtk_list_store_new(1, G_TYPE_STRING);
p_list_view=gtk_tree_view_new_with_model(GTK_TREE_MODEL(p_list));
opt=gtk_cell_renderer_text_new();
p_column=gtk_tree_view_column_new_with_attributes(title, opt, "text", 0, NULL);
gtk_tree_view_append_column(GTK_TREE_VIEW(p_list_view), p_column);
gtk_container_add(GTK_CONTAINER(p_vbox), p_list_view);

voila....
Messages postés
127
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
5 août 2007

oh oui j'ai pas fait attention ^^
Merci beaucoup!