|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: May 2002
Città: Massa Carrara
Messaggi: 589
|
Problema pulizia
Ho una semplice lista Glist.
vorrei pulirla e riscrivere dei nuovi valori. per fare cio' devo liberare la memoria dai widget di tipo Listitem. non ci riesco. dove diavolo sbaglio? la prima tenta di liberare la memoria ma gia' nella destroy_widget mi dice che dlist->data e' null e sto cercando di distruggere un widget sbagliato. eppure li lista mi si popola bane. ciao Codice:
struct strumainfrm{ GtkWidget *window; GtkWidget *vbox; GtkWidget *pgbar; GtkWidget *button; GtkWidget *list; GtkWidget *scrolled_window;//conterra' la lista GList *dlist; GtkWidget *fixed; }; struct strumainfrm *mainfrm,mainfrm2; void AggiornaListaPresenze(){ FILE *fd; pres buf_presenze; GtkWidget *listitem; if(mainfrm->dlist!=NULL){ gtk_list_remove_items(GTK_LIST(mainfrm->list),mainfrm->dlist); while (mainfrm->dlist){ gtk_widget_destroy(GTK_WIDGET(mainfrm->dlist->data)); mainfrm->dlist=g_list_next(mainfrm->dlist); } mainfrm->dlist=g_list_first(mainfrm->dlist); g_list_free(mainfrm->dlist); mainfrm->dlist=NULL; } int ret; g_print("aggpres\n"); if ((fd=fopen("presenze.dat","r+"))!=NULL){ ret=fread(&buf_presenze,sizeof(buf_presenze),1,fd); while (!(feof(fd))){ listitem=gtk_list_item_new_with_label(buf_presenze.nome); mainfrm->dlist=g_list_prepend(mainfrm->dlist,listitem); gtk_widget_show(listitem); ret=fread(&buf_presenze,sizeof(buf_presenze),1,fd); } fclose(fd); gtk_list_append_items(GTK_LIST(mainfrm->list),mainfrm->dlist); } gtk_widget_show(mainfrm->list); } Ultima modifica di x110 : 02-01-2004 alle 13:32. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: May 2002
Città: Massa Carrara
Messaggi: 589
|
e non va e...
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: May 2002
Città: Massa Carrara
Messaggi: 589
|
propio nessuno.....
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 05:27.