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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.