Modification d'un GtkTable / unattach widget
Salut à tous,
Voici un nouveau problème assez interessant :
Je voulais faire du dynamique dans mon interface graphique, une sorte de drag and drop, sauf que bon c'est avec des boutons pour le moment ;)
Toujours est il que pour ajouter/retirer des éléments, j'ai vite renoncé aux gtk_box, qui sont compliquées à modifier en cours de boucle run, et j'ai juste mis une gtk_table, dont je modifie la taille lorsque j'ajoutes un élément.
Soit, ca marche trés bien pour l'ajout, par contre, pour enlever un élément, je coince :)
en tentant ceci :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
// On supprime le filtre de la liste de filtres :
it = p->filtre;
do{
it = it->next;
}while(it->next);
f = it->data;
g_list_remove(p->filtre, f);
p->nbf --; // nombre de filtres
// On actualise l'IHM:
gtk_table_resize(GTK_TABLE(p->FiltresTable), p->nbf, 5);
gtk_widget_show_all(p->FiltresTable); |
il ne fait rien et en tentant ca :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
// On supprime le filtre de la liste de filtres :
it = p->filtre;
do{
it = it->next;
}while(it->next);
f = it->data;
g_list_remove(p->filtre, f);
p->nbf --;
// On actualise l'IHM:
gtk_table_resize(GTK_TABLE(p->FiltresTable), p->nbf, 5);
it = p->filtre;
do{
f2 = (filtres*)it->data;
gtk_table_attach_defaults(GTK_TABLE(p->FiltresTable), GTK_WIDGET(f2->filtreBox), 0, 5, p->nbf -1, p->nbf);
it = it->next;
}while(it);
gtk_widget_show_all(p->FiltresTable); |
il me sort une erreur de type :
Code:
gtk_table_attach : assertion 'child->parent == NULL' failed
alors que ca n'est pas NULL (je teste un printf("%d\n", f->index); qui affiche le bon résultat)
Voilou, en éspérant que vous quelqu'un y verra plus clair que moi :)
Bonne journée !
EDIT : à noter que le retrait de la GList fonctionne. C'est juste l'affichage qui plante.