Bonjour.

Je veux afficher une liste d'utilisateurs contenue dans un fichier binaire avec l'outil GtkTreeView et pour cela j'ai utilisé le code ci-dessous mais rien ne se passe aidez moi.

Merci d'avance.

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
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
enum {
    TEXT_COLUMN,
    INT_COLUMN,
    INT_COLUMN2,
    INT_COLUMN3,
    TEXT_COLUMN2,
    N_COLUMN
};
 
int main(int argc,char argv[]){
    GtkWidget *box;
    GtkWidget *pWindow;
    GtkWidget *pListView;
    GtkWidget *pScrollbar;
    GtkListStore *pListStore;
    GtkTreeViewColumn *pColumn;
    GtkCellRenderer *pCellRenderer;
gtk_init(&argc,&argv);
    /* Creation de la fenetre principale */
    pWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_window_set_default_size(GTK_WINDOW(pWindow), 320, 200);
    gtk_window_set_title(GTK_WINDOW(pWindow), "Gestion  des utilisateurs");
    g_signal_connect(G_OBJECT(pWindow), "destroy", G_CALLBACK(gtk_main_quit), NULL);
    box=gtk_vbox_new(TRUE,1);
 
    /* Creation du modele */
    pListStore = gtk_list_store_new(N_COLUMN,G_TYPE_INT, G_TYPE_STRING, G_TYPE_STRING,G_TYPE_INT,G_TYPE_INT);
 
 
    /* Insertion des elements */
    FILE *f=fopen("utilisateur.dat","rb");
    struct personne    *t=(struct    personne*)malloc(sizeof(struct   personne));
    while(fread(t,sizeof(struct personne),1,f),!feof(f)){
 
                    GtkTreeIter pIter;
                     /* Creation de la nouvelle ligne */
                    gtk_list_store_append(pListStore, &pIter);
                    /* Mise a jour des donnees */
                    gtk_list_store_set(pListStore, &pIter,INT_COLUMN,t->code,TEXT_COLUMN, t->pseudo,TEXT_COLUMN2, t->mp,INT_COLUMN2,t->etat,INT_COLUMN3,t->service,-1);
 
 
    }
    /*for(i = 0 ; i < 10 ; ++i)
    {
        GtkTreeIter pIter;
 
        sprintf(sTexte, "Ligne %d ", i);
 
 
        gtk_list_store_append(pListStore, &pIter);
 
 
        gtk_list_store_set(pListStore, &pIter,
            TEXT_COLUMN, sTexte,
            TOGGLE_COLUMN, TRUE,
            -1);
    }*/
    fclose(f);
    free(t);
 
    /* Creation de la vue */
    pListView = gtk_tree_view_new_with_model(GTK_TREE_MODEL(pListStore));
 
/* Creation de la premiere colonne */
    pCellRenderer = gtk_cell_renderer_text_new();
    pColumn = gtk_tree_view_column_new_with_attributes("num",
        pCellRenderer,
        "text", INT_COLUMN,
        NULL);
        /* Ajout de la colonne à la vue */
    gtk_tree_view_append_column(GTK_TREE_VIEW(pListView), pColumn);
    /* Creation de la premiere colonne */
    pCellRenderer = gtk_cell_renderer_text_new();
    pColumn = gtk_tree_view_column_new_with_attributes("pseudo",
        pCellRenderer,
        "text", TEXT_COLUMN,
        NULL);
 
    /* Ajout de la colonne à la vue */
    gtk_tree_view_append_column(GTK_TREE_VIEW(pListView), pColumn);
 
    /* Creation de la deuxieme colonne */
    pCellRenderer = gtk_cell_renderer_text_new();
    pColumn = gtk_tree_view_column_new_with_attributes("password",
        pCellRenderer,
        "text", TEXT_COLUMN2,
        NULL);
 
    /* Ajout de la colonne à la vue */
    gtk_tree_view_append_column(GTK_TREE_VIEW(pListView), pColumn);
 
    /* Creation de la premiere colonne */
    pCellRenderer = gtk_cell_renderer_text_new();
    pColumn = gtk_tree_view_column_new_with_attributes("etat",
        pCellRenderer,
        "text", INT_COLUMN2,
        NULL);
        /* Ajout de la colonne à la vue */
    gtk_tree_view_append_column(GTK_TREE_VIEW(pListView), pColumn);
 
/* Creation de la premiere colonne */
    pCellRenderer = gtk_cell_renderer_text_new();
    pColumn = gtk_tree_view_column_new_with_attributes("num de service",
        pCellRenderer,
        "text", INT_COLUMN2,
        NULL);
        /* Ajout de la colonne à la vue */
    gtk_tree_view_append_column(GTK_TREE_VIEW(pListView), pColumn);
    /* Ajout de la vue a la fenetre */
    pScrollbar = gtk_scrolled_window_new(NULL, NULL);
    gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(pScrollbar),
        GTK_POLICY_AUTOMATIC,
        GTK_POLICY_AUTOMATIC);
    gtk_container_add(GTK_CONTAINER(pScrollbar), pListView);
    gtk_box_pack_start(GTK_BOX(box),pScrollbar,FALSE,FALSE,0);
    gtk_container_add(GTK_CONTAINER(pWindow), box);
 
    gtk_widget_show_all(pWindow);
 
    gtk_main();
return 0;
}