bonjour,
voila je veux faire une calculatrice avec gtk+ mais tu vas bien sauf que quand on click sur les boutons ils affichent tous la même chose! voila mon code:
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
#include <stdlib.h>
#include <gtk/gtk.h>
void onupdate(GtkWidget *entry,gpointer data);
void onupdatte(GtkWidget *entry,gpointer data);
 
 
int main(int argc, char **argv)
{
    GtkWidget *ecran,*button[15],*table,*entry;
 
    gtk_init(&argc,&argv);
 
ecran =gtk_window_new(GTK_WINDOW_TOPLEVEL);
       gtk_window_set_default_size(GTK_WINDOW(ecran),300,300);
       gtk_window_set_title(GTK_WINDOW(ecran),"hany");
       gtk_window_set_position(GTK_WINDOW(ecran),GTK_WIN_POS_CENTER);
 
 
button[0]=gtk_button_new_with_label("7");
button[1]=gtk_button_new_with_label("4");
button[2]=gtk_button_new_with_label("1");
button[3]=gtk_button_new_with_label("0");
 
button[4]=gtk_button_new_with_label("8");
button[5]=gtk_button_new_with_label("5");
button[6]=gtk_button_new_with_label("2");
button[7]=gtk_button_new_with_label("+");
 
button[8]=gtk_button_new_with_label("9");
button[9]=gtk_button_new_with_label("6");
button[10]=gtk_button_new_with_label("3");
button[11]=gtk_button_new_with_label("-");
 
button[12]=gtk_button_new_with_label("*");
button[13]=gtk_button_new_with_label("/");
button[14]=gtk_button_new_with_label("=");
 
entry=    gtk_entry_new();
 
table =gtk_table_new(5,6,TRUE);
 
       gtk_table_set_row_spacing(GTK_TABLE(table),1, 5);
       gtk_table_set_row_spacing(GTK_TABLE(table),2, 5);
       gtk_table_set_row_spacing(GTK_TABLE(table),3, 5);
       gtk_table_set_row_spacing(GTK_TABLE(table),4, 5);
       gtk_table_set_row_spacing(GTK_TABLE(table),5, 5);
 
       gtk_table_set_col_spacing(GTK_TABLE(table),1, 5);
       gtk_table_set_col_spacing(GTK_TABLE(table),2, 5);
       gtk_table_set_col_spacing(GTK_TABLE(table),3, 5);
       gtk_table_set_col_spacing(GTK_TABLE(table),4, 5);
       gtk_table_set_col_spacing(GTK_TABLE(table),5, 5);
       gtk_table_set_col_spacing(GTK_TABLE(table),6, 5);
 
       gtk_table_attach_defaults(GTK_TABLE(table),entry    ,0,6,0,1);
 
       gtk_table_attach_defaults(GTK_TABLE(table),button[0],0,1,1,2);
       gtk_table_attach_defaults(GTK_TABLE(table),button[1],0,1,2,3);
       gtk_table_attach_defaults(GTK_TABLE(table),button[2],0,1,3,4);
       gtk_table_attach_defaults(GTK_TABLE(table),button[3],0,1,4,5);
 
       gtk_table_attach_defaults(GTK_TABLE(table),button[4],1,2,1,2);
       gtk_table_attach_defaults(GTK_TABLE(table),button[5],1,2,2,3);
       gtk_table_attach_defaults(GTK_TABLE(table),button[6],1,2,3,4);
       gtk_table_attach_defaults(GTK_TABLE(table),button[7],1,2,4,5);
 
       gtk_table_attach_defaults(GTK_TABLE(table),button[8],2,3,1,2);
       gtk_table_attach_defaults(GTK_TABLE(table),button[9],2,3,2,3);
       gtk_table_attach_defaults(GTK_TABLE(table),button[10],2,3,3,4);
       gtk_table_attach_defaults(GTK_TABLE(table),button[11],2,3,4,5);
 
       gtk_table_attach_defaults(GTK_TABLE(table),button[12],3,4,1,2);
       gtk_table_attach_defaults(GTK_TABLE(table),button[13],3,4,2,3);
       gtk_table_attach_defaults(GTK_TABLE(table),button[14],3,4,3,4);
 
       gtk_container_add(GTK_CONTAINER(ecran),table);
 
       g_signal_connect(G_OBJECT(ecran),"destroy",G_CALLBACK(gtk_main_quit),NULL);
 
       g_signal_connect(G_OBJECT(button[0]),"clicked",G_CALLBACK(onupdatte),(GtkWidget*)entry);
       g_signal_connect(G_OBJECT(button[1]),"clicked",G_CALLBACK(onupdatte),(GtkWidget*)entry);
       g_signal_connect(G_OBJECT(button[2]),"clicked",G_CALLBACK(onupdatte),(GtkWidget*)entry);
       g_signal_connect(G_OBJECT(button[3]),"clicked",G_CALLBACK(onupdatte),(GtkWidget*)entry);
       g_signal_connect(G_OBJECT(button[4]),"clicked",G_CALLBACK(onupdatte),(GtkWidget*)entry);
 
       g_signal_connect(G_OBJECT(button[5]),"clicked",G_CALLBACK(onupdatte),(GtkWidget*)entry);
       g_signal_connect(G_OBJECT(button[6]),"clicked",G_CALLBACK(onupdatte),(GtkWidget*)entry);
       g_signal_connect(G_OBJECT(button[7]),"clicked",G_CALLBACK(onupdatte),(GtkWidget*)entry);
       g_signal_connect(G_OBJECT(button[8]),"clicked",G_CALLBACK(onupdatte),(GtkWidget*)entry);
       g_signal_connect(G_OBJECT(button[9]),"clicked",G_CALLBACK(onupdatte),(GtkWidget*)entry);
 
       g_signal_connect(G_OBJECT(button[10]),"clicked",G_CALLBACK(onupdatte),(GtkWidget*)entry);
       g_signal_connect(G_OBJECT(button[11]),"clicked",G_CALLBACK(onupdatte),(GtkWidget*)entry);
       g_signal_connect(G_OBJECT(button[12]),"clicked",G_CALLBACK(onupdatte),(GtkWidget*)entry);
       g_signal_connect(G_OBJECT(button[13]),"clicked",G_CALLBACK(onupdatte),(GtkWidget*)entry);
       g_signal_connect(G_OBJECT(button[14]),"clicked",G_CALLBACK(onupdatte),(GtkWidget*)entry);
 
 
       g_signal_connect(G_OBJECT(entry),"activate",G_CALLBACK(onupdate),NULL);
 
       gtk_widget_show_all(ecran);
 
       gtk_main();
 
       return 0;
}
 
void onupdate(GtkWidget *entry,gpointer data)
{
    gchar val[]="7";
 
    gtk_entry_set_text(GTK_ENTRY(entry),val);
 
}
 
void onupdatte(GtkWidget *entry,gpointer data)
{
    gchar val[]="7";
    gtk_entry_set_text(GTK_ENTRY(data),val);
 
}