IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

GTK+ avec C & C++ Discussion :

GTK call back


Sujet :

GTK+ avec C & C++

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 6
    Par défaut GTK call back
    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);
     
    }

  2. #2
    Membre expérimenté

    Inscrit en
    Mai 2005
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 132
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    void onupdatte ( GtkWidget *button, gpointer entry )
    {
        gtk_entry_set_text( GTK_ENTRY(entry), gtk_button_get_label ( (GtkButton*)button ) );
    }
    Fredy

Discussions similaires

  1. Call back xml et vba
    Par CODYCO dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 09/12/2011, 08h40
  2. call back non appelé
    Par yuriyan dans le forum Silverlight
    Réponses: 1
    Dernier message: 01/09/2011, 16h22
  3. Réponses: 2
    Dernier message: 12/09/2007, 11h23
  4. [PHP-JS] call back php
    Par silver.spike dans le forum Langage
    Réponses: 1
    Dernier message: 09/03/2007, 16h36
  5. [C#][2.0] Client Call back
    Par dLab dans le forum ASP.NET
    Réponses: 3
    Dernier message: 20/02/2006, 16h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo