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 :

combobox avec gtk


Sujet :

GTK+ avec C & C++

  1. #21
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    On ne fait pas de comparaison de cette façon:
    Avec le symbole == tu dois faire une comparaison entre deux valeurs numérique alors qu'ici l'opérande de droite est une chaîne de caractères

    Il faut faire une comparaison avec un autre entier:
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  2. #22
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Citation Envoyé par pepsister
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    text=gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(comboboxentry4)->entry));
    On accède au GtkEntry d'un GtkComboBoxEntry de cette manière:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GTK_ENTRY (GTK_BIN (comboboxentry4)->child)
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  3. #23
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 302
    Par défaut
    si je mets ce que vous m'avez dit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    GTK_ENTRY (GTK_BIN (comboboxentry4)->child)
    ca me met un message d'erreur.
    Voici le 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
     
    int value = 0;
      const gchar *text = NULL;
      comboboxentry4 = gtk_combo_box_entry_new_text ();
      gtk_widget_show (comboboxentry4);
      gtk_box_pack_start (GTK_BOX (vbox5), comboboxentry4, TRUE, TRUE, 0);
      gtk_widget_set_size_request (comboboxentry4, 100, -1);
      /*récupéation de la catégorie*/
      //text=gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(comboboxentry4)->entry));
      text=GTK_ENTRY (GTK_BIN (comboboxentry4)->child)
      value=strtol(text, NULL,10);
     
      if (value==31)
          gtk_combo_box_append_text (GTK_COMBO_BOX (comboboxentry4), _("janvier"));
      else
          gtk_combo_box_append_text (GTK_COMBO_BOX (comboboxentry4), _("fevrier"));
    et voici le message d'erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    [Warning] assignment from incompatible pointer type
    il me met ce message sur la ligne de code que vous me conseillez de mettre donc que dois je faire?

  4. #24
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    J'ai dit que ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GTK_ENTRY (GTK_BIN (comboboxentry4)->child)
    c'était pour accéder au widget, pas pour récupérer le texte Toi il faut que tu mettes cette macro dans l'appel de la fonction que a utilisé avant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    text=gtk_entry_get_text(GTK_ENTRY (GTK_BIN (comboboxentry4)->child));
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  5. #25
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 302
    Par défaut
    je suis désolée mais ca ne marche toujours pas en fait ca exécute mais je peux choisir n'importe quel chiffre dans la combobox1 il ne me propose rien pour aller dans la combobox2 ni janvier ni fevrier, pourquoi?

    voici mon code, un peu modifier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     int value = 0;
      const gchar *text = NULL;
      /*récupération de la valeur dans la combobox1*/
       text=gtk_entry_get_text(GTK_ENTRY (GTK_BIN (comboboxentry1)->child));
    /*on transcrit la chaine en un nombre*/
     value=strtol(text, NULL,10);
     
     
      if (value==31)
          gtk_combo_box_append_text (GTK_COMBO_BOX (comboboxentry2), _("janvier"));
      else
          gtk_combo_box_append_text (GTK_COMBO_BOX (comboboxentry2), _("fevrier"));
    merci

  6. #26
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Dans ce cas montre un peu plus de code voir même ton code complet car mon programme lui fonctionne très bien:
    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
    #include <stdlib.h>
    #include <string.h>
    #include <gtk/gtk.h>
     
     
    typedef struct
    {
       GtkWidget * p_combo1;
       GtkWidget * p_combo2;
    }
    combo_st;
     
     
    static void cb_activate (GtkEntry * p_entry, gpointer p_data)
    {
       int val = 0;
       const gchar * s_text = NULL;
       combo_st    * p_st   = p_data;
     
     
       s_text = gtk_entry_get_text (GTK_ENTRY (GTK_BIN (p_st->p_combo1)->child));
     
       if (s_text != NULL)
       {
          val = strtol (s_text, NULL, 0);
     
          if (val == 31)
          {
             gtk_combo_box_append_text (GTK_COMBO_BOX (p_st->p_combo2), "janvier");
          }
          else
          {
             gtk_combo_box_append_text (GTK_COMBO_BOX (p_st->p_combo2), "fevrier");
          }
          gtk_combo_box_set_active (GTK_COMBO_BOX (p_st->p_combo2), 0);
       }
     
     
       (void) p_entry;
    }
     
     
    int main (int argc, char ** argv)
    {
       GtkWidget * p_win    = NULL;
       GtkWidget * p_vbox   = NULL;
       combo_st    st;
     
     
       gtk_init (& argc, & argv);
     
     
       p_win = gtk_window_new           (GTK_WINDOW_TOPLEVEL);
       gtk_window_set_default_size      (GTK_WINDOW (p_win), 200, 100);
       gtk_container_set_border_width   (GTK_CONTAINER (p_win), 5);
       gtk_window_set_position          (GTK_WINDOW (p_win), GTK_WIN_POS_CENTER);
       g_signal_connect                 (p_win, "destroy", gtk_main_quit, NULL);
     
     
       p_vbox = gtk_vbox_new   (FALSE, 2);
       gtk_container_add       (GTK_CONTAINER (p_win), p_vbox);
     
       st.p_combo1 = gtk_combo_box_entry_new_text ();
       st.p_combo2 = gtk_combo_box_entry_new_text ();
       gtk_box_pack_start (GTK_BOX (p_vbox), st.p_combo1, TRUE, TRUE, 2);
       gtk_box_pack_start (GTK_BOX (p_vbox), st.p_combo2, TRUE, TRUE, 2);
     
       g_signal_connect (
          G_OBJECT (GTK_BIN (st.p_combo1)->child), "activate",
          G_CALLBACK (cb_activate), (gpointer) & st
       );
     
     
       gtk_widget_show_all (p_win);
       gtk_main ();
     
     
       return EXIT_SUCCESS;
    }
    Si des fois tu le test, il faut mettre une valeur dans le premier combo puis appuyer sur Entrée !
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  7. #27
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 302
    Par défaut
    voici le code qui est dans l'interface.c, peut etre est ce parce que je n'ai pas appeler la fonction activate comme toi? mais définir une structure ca encore j'ai vu mais je pense pouvoir faire sans car je ne la maitrise pas par contre je ne comprend pas ton static void, j'ai essayé de recopier exactement ce que tu as mis en mettant mes noms mais il m'affiche pleins de messages d'erreur
    enfin voici tout le code qui t'intéresse je pense peux tu me dire exactement ce que je dois mettre , je ne comprend vraiment plus rien
    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
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    326
    327
    328
    329
    330
    331
    332
    333
    334
    335
    336
    337
    338
    339
    340
    341
    342
    343
    344
    345
    346
     
    #ifdef HAVE_CONFIG_H
    #  include <config.h>
    #endif
     
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <unistd.h>
    #include <string.h>
    #include <stdio.h>
     
    #include <gdk/gdkkeysyms.h>
    #include <gtk/gtk.h>
     
    #include "callbacks.h"
    #include "interface.h"
    #include "support.h"
     
    #define GLADE_HOOKUP_OBJECT(component,widget,name) \
      g_object_set_data_full (G_OBJECT (component), name, \
        gtk_widget_ref (widget), (GDestroyNotify) gtk_widget_unref)
     
    #define GLADE_HOOKUP_OBJECT_NO_REF(component,widget,name) \
      g_object_set_data (G_OBJECT (component), name, widget)
     
     
     
     
     
     
     
    GtkWidget*
    create_window1 (void)
    {
      GtkWidget *window1;
      GtkWidget *hbox1;
      GtkWidget *vbox3;
      GtkWidget *frame1;
      GtkWidget *alignment1;
      GtkWidget *hbox2;
      GtkWidget *vbox4;
      GtkWidget *label4;
      GtkWidget *comboboxentry1;
      GtkWidget *vbox5;
      GtkWidget *label5;
      GtkWidget *comboboxentry2;
      GtkWidget *vbox6;
      GtkWidget *label6;
      GtkWidget *comboboxentry3;
      GtkWidget *label3;
      GtkWidget *frame2;
      GtkWidget *alignment2;
      GtkWidget *table1;
      GtkWidget *comboboxentry4;
      GtkWidget *comboboxentry5;
      GtkWidget *label8;
      GtkWidget *label9;
      GtkWidget *label7;
      GtkWidget *vbox1;
      GtkWidget *label1;
      GtkWidget *entry1;
      GtkWidget *label2;
      GtkWidget *scrolledwindow1;
      GtkWidget *textview1;
      GtkWidget *hbox3;
      GtkWidget *button4;
      GtkWidget *button5;
      GtkWidget *button6;
     
     
      window1 = gtk_window_new (GTK_WINDOW_TOPLEVEL);
      gtk_window_set_title (GTK_WINDOW (window1), _("Agenda"));
     
      hbox1 = gtk_hbox_new (TRUE, 4);
      gtk_widget_show (hbox1);
      gtk_container_add (GTK_CONTAINER (window1), hbox1);
      gtk_container_set_border_width (GTK_CONTAINER (hbox1), 4);
     
      vbox3 = gtk_vbox_new (FALSE, 0);
      gtk_widget_show (vbox3);
      gtk_box_pack_start (GTK_BOX (hbox1), vbox3, TRUE, TRUE, 0);
     
      frame1 = gtk_frame_new (NULL);
      gtk_widget_show (frame1);
      gtk_box_pack_start (GTK_BOX (vbox3), frame1, FALSE, FALSE, 0);
      gtk_frame_set_shadow_type (GTK_FRAME (frame1), GTK_SHADOW_IN);
     
      alignment1 = gtk_alignment_new (0, 0, 0, 0);
      gtk_widget_show (alignment1);
      gtk_container_add (GTK_CONTAINER (frame1), alignment1);
     
      hbox2 = gtk_hbox_new (TRUE, 0);
      gtk_widget_show (hbox2);
      gtk_container_add (GTK_CONTAINER (alignment1), hbox2);
      gtk_container_set_border_width (GTK_CONTAINER (hbox2), 3);
     
      vbox4 = gtk_vbox_new (FALSE, 8);
      gtk_widget_show (vbox4);
      gtk_box_pack_start (GTK_BOX (hbox2), vbox4, FALSE, FALSE, 0);
     
      label4 = gtk_label_new (_("le jour"));
      gtk_widget_show (label4);
      gtk_box_pack_start (GTK_BOX (vbox4), label4, FALSE, FALSE, 0);
     
      comboboxentry1 = gtk_combo_box_entry_new_text ();
      gtk_widget_show (comboboxentry1);
      gtk_box_pack_start (GTK_BOX (vbox4), comboboxentry1, TRUE, TRUE, 0);
      gtk_widget_set_size_request (comboboxentry1, 56, -1);
      gtk_combo_box_append_text (GTK_COMBO_BOX (comboboxentry1), _("1"));
      gtk_combo_box_append_text (GTK_COMBO_BOX (comboboxentry1), _("2"));
      gtk_combo_box_append_text (GTK_COMBO_BOX (comboboxentry1), _("3"));
      gtk_combo_box_append_text (GTK_COMBO_BOX (comboboxentry1), _("4"));
      gtk_combo_box_append_text (GTK_COMBO_BOX (comboboxentry1), _("5"));
      gtk_combo_box_append_text (GTK_COMBO_BOX (comboboxentry1), _("6"));
      gtk_combo_box_append_text (GTK_COMBO_BOX (comboboxentry1), _("7"));
      gtk_combo_box_append_text (GTK_COMBO_BOX (comboboxentry1), _("8"));
      gtk_combo_box_append_text (GTK_COMBO_BOX (comboboxentry1), _("9"));
      gtk_combo_box_append_text (GTK_COMBO_BOX (comboboxentry1), _("10"));
      gtk_combo_box_append_text (GTK_COMBO_BOX (comboboxentry1), _("11"));
      gtk_combo_box_append_text (GTK_COMBO_BOX (comboboxentry1), _("12"));
      gtk_combo_box_append_text (GTK_COMBO_BOX (comboboxentry1), _("13"));
      gtk_combo_box_append_text (GTK_COMBO_BOX (comboboxentry1), _("14"));
      gtk_combo_box_append_text (GTK_COMBO_BOX (comboboxentry1), _("15"));
      gtk_combo_box_append_text (GTK_COMBO_BOX (comboboxentry1), _("16"));
      gtk_combo_box_append_text (GTK_COMBO_BOX (comboboxentry1), _("17"));
      gtk_combo_box_append_text (GTK_COMBO_BOX (comboboxentry1), _("18"));
      gtk_combo_box_append_text (GTK_COMBO_BOX (comboboxentry1), _("19"));
      gtk_combo_box_append_text (GTK_COMBO_BOX (comboboxentry1), _("20"));
      gtk_combo_box_append_text (GTK_COMBO_BOX (comboboxentry1), _("21"));
      gtk_combo_box_append_text (GTK_COMBO_BOX (comboboxentry1), _("22"));
      gtk_combo_box_append_text (GTK_COMBO_BOX (comboboxentry1), _("23"));
      gtk_combo_box_append_text (GTK_COMBO_BOX (comboboxentry1), _("24"));
      gtk_combo_box_append_text (GTK_COMBO_BOX (comboboxentry1), _("25"));
      gtk_combo_box_append_text (GTK_COMBO_BOX (comboboxentry1), _("26"));
      gtk_combo_box_append_text (GTK_COMBO_BOX (comboboxentry1), _("27"));
      gtk_combo_box_append_text (GTK_COMBO_BOX (comboboxentry1), _("28"));
      gtk_combo_box_append_text (GTK_COMBO_BOX (comboboxentry1), _("29"));
      gtk_combo_box_append_text (GTK_COMBO_BOX (comboboxentry1), _("30"));
      gtk_combo_box_append_text (GTK_COMBO_BOX (comboboxentry1), _("31"));
     
      vbox5 = gtk_vbox_new (FALSE, 8);
      gtk_widget_show (vbox5);
      gtk_box_pack_start (GTK_BOX (hbox2), vbox5, FALSE, FALSE, 0);
     
      label5 = gtk_label_new (_("le mois"));
      gtk_widget_show (label5);
      gtk_box_pack_start (GTK_BOX (vbox5), label5, FALSE, FALSE, 0);
     
      comboboxentry2 = gtk_combo_box_entry_new ();
      gtk_widget_show (comboboxentry2);
      gtk_box_pack_start (GTK_BOX (vbox5), comboboxentry2, TRUE, TRUE, 0);
      gtk_widget_set_size_request (comboboxentry2, 100, -1);
     
     
      int value = 0;
      const gchar *text = NULL;
      /*récupération de la valeur dans la combobox1*/
      text=gtk_entry_get_text(GTK_ENTRY (GTK_BIN (comboboxentry1)->child));
     if (text != NULL)
    {
    /*on transcrit la chaine en un nombre*/
     value=strtol(text, NULL,0);
     
      if (value==31)
      {
          gtk_combo_box_append_text (GTK_COMBO_BOX (comboboxentry2), _("janvier"));
    }
      else
      {
          gtk_combo_box_append_text (GTK_COMBO_BOX (comboboxentry2), _("fevrier"));
    }
     gtk_combo_box_set_active (GTK_COMBO_BOX (comboboxentry2), 0);
    }
     
     
     
     
     
     
     
     
     
     
     
      vbox6 = gtk_vbox_new (FALSE, 8);
      gtk_widget_show (vbox6);
      gtk_box_pack_start (GTK_BOX (hbox2), vbox6, FALSE, FALSE, 0);
     
      label6 = gtk_label_new (_("l'ann\303©e"));
      gtk_widget_show (label6);
      gtk_box_pack_start (GTK_BOX (vbox6), label6, FALSE, FALSE, 0);
     
      comboboxentry3 = gtk_combo_box_entry_new ();
      gtk_widget_show (comboboxentry3);
      gtk_box_pack_start (GTK_BOX (vbox6), comboboxentry3, FALSE, FALSE, 0);
      gtk_widget_set_size_request (comboboxentry3, 80, -1);
     
      label3 = gtk_label_new (_("<b>Saisie de la date</b>"));
      gtk_widget_show (label3);
      gtk_frame_set_label_widget (GTK_FRAME (frame1), label3);
      gtk_label_set_use_markup (GTK_LABEL (label3), TRUE);
     
      frame2 = gtk_frame_new (NULL);
      gtk_widget_show (frame2);
      gtk_box_pack_start (GTK_BOX (vbox3), frame2, FALSE, FALSE, 0);
      gtk_frame_set_shadow_type (GTK_FRAME (frame2), GTK_SHADOW_IN);
     
      alignment2 = gtk_alignment_new (0.5, 0.5, 1, 1);
      gtk_widget_show (alignment2);
      gtk_container_add (GTK_CONTAINER (frame2), alignment2);
      gtk_alignment_set_padding (GTK_ALIGNMENT (alignment2), 0, 0, 3, 3);
     
      table1 = gtk_table_new (2, 2, TRUE);
      gtk_widget_show (table1);
      gtk_container_add (GTK_CONTAINER (alignment2), table1);
      gtk_container_set_border_width (GTK_CONTAINER (table1), 5);
     
      comboboxentry4 = gtk_combo_box_entry_new ();
      gtk_widget_show (comboboxentry4);
      gtk_table_attach (GTK_TABLE (table1), comboboxentry4, 0, 1, 1, 2,
                        (GtkAttachOptions) (0),
                        (GtkAttachOptions) (0), 0, 0);
      gtk_widget_set_size_request (comboboxentry4, 56, -1);
     
      comboboxentry5 = gtk_combo_box_entry_new ();
      gtk_widget_show (comboboxentry5);
      gtk_table_attach (GTK_TABLE (table1), comboboxentry5, 1, 2, 1, 2,
                        (GtkAttachOptions) (0),
                        (GtkAttachOptions) (0), 0, 0);
      gtk_widget_set_size_request (comboboxentry5, 56, -1);
     
      label8 = gtk_label_new (_("les heures"));
      gtk_widget_show (label8);
      gtk_table_attach (GTK_TABLE (table1), label8, 0, 1, 0, 1,
                        (GtkAttachOptions) (GTK_EXPAND),
                        (GtkAttachOptions) (0), 0, 0);
      gtk_misc_set_alignment (GTK_MISC (label8), 0, 0.5);
     
      label9 = gtk_label_new (_("les minutes"));
      gtk_widget_show (label9);
      gtk_table_attach (GTK_TABLE (table1), label9, 1, 2, 0, 1,
                        (GtkAttachOptions) (0),
                        (GtkAttachOptions) (0), 0, 0);
      gtk_misc_set_alignment (GTK_MISC (label9), 0, 0.5);
     
      label7 = gtk_label_new (_("<b>Saisie de l'heure</b>"));
      gtk_widget_show (label7);
      gtk_frame_set_label_widget (GTK_FRAME (frame2), label7);
      gtk_label_set_use_markup (GTK_LABEL (label7), TRUE);
     
      vbox1 = gtk_vbox_new (FALSE, 4);
      gtk_widget_show (vbox1);
      gtk_box_pack_start (GTK_BOX (hbox1), vbox1, TRUE, TRUE, 0);
      gtk_container_set_border_width (GTK_CONTAINER (vbox1), 4);
     
      label1 = gtk_label_new (_("saisissez l'intitul\303©:"));
      gtk_widget_show (label1);
      gtk_box_pack_start (GTK_BOX (vbox1), label1, FALSE, FALSE, 3);
     
      entry1 = gtk_entry_new ();
      gtk_widget_show (entry1);
      gtk_box_pack_start (GTK_BOX (vbox1), entry1, FALSE, FALSE, 1);
     
      label2 = gtk_label_new (_("saisissez votre texte:"));
      gtk_widget_show (label2);
      gtk_box_pack_start (GTK_BOX (vbox1), label2, FALSE, FALSE, 10);
     
      scrolledwindow1 = gtk_scrolled_window_new (NULL, NULL);
      gtk_widget_show (scrolledwindow1);
      gtk_box_pack_start (GTK_BOX (vbox1), scrolledwindow1, TRUE, TRUE, 0);
      gtk_container_set_border_width (GTK_CONTAINER (scrolledwindow1), 7);
      gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow1), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS);
      gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow1), GTK_SHADOW_IN);
     
      textview1 = gtk_text_view_new ();
      gtk_widget_show (textview1);
      gtk_container_add (GTK_CONTAINER (scrolledwindow1), textview1);
      gtk_container_set_border_width (GTK_CONTAINER (textview1), 5);
     
      hbox3 = gtk_hbox_new (TRUE, 0);
      gtk_widget_show (hbox3);
      gtk_box_pack_start (GTK_BOX (vbox1), hbox3, FALSE, TRUE, 0);
      gtk_container_set_border_width (GTK_CONTAINER (hbox3), 10);
     
      button4 = gtk_button_new_from_stock ("gtk-clear");
      gtk_widget_show (button4);
      gtk_box_pack_start (GTK_BOX (hbox3), button4, FALSE, FALSE, 0);
      gtk_widget_set_size_request (button4, 70, 60);
     
      button5 = gtk_button_new_from_stock ("gtk-save");
      gtk_widget_show (button5);
      gtk_box_pack_start (GTK_BOX (hbox3), button5, FALSE, FALSE, 0);
      gtk_widget_set_size_request (button5, 70, 60);
     
      button6 = gtk_button_new_from_stock ("gtk-quit");
      gtk_widget_show (button6);
      gtk_box_pack_start (GTK_BOX (hbox3), button6, FALSE, FALSE, 0);
      gtk_widget_set_size_request (button6, 70, 60);
     
     
      g_signal_connect ((gpointer) button6, "clicked",
                        G_CALLBACK (on_button6_clicked),
                        NULL);
     
      g_signal_connect ((gpointer) button4, "clicked",
                        G_CALLBACK (on_button4_clicked),
                        NULL);
     
      /* Store pointers to all widgets, for use by lookup_widget(). */
      GLADE_HOOKUP_OBJECT_NO_REF (window1, window1, "window1");
      GLADE_HOOKUP_OBJECT (window1, hbox1, "hbox1");
      GLADE_HOOKUP_OBJECT (window1, vbox3, "vbox3");
      GLADE_HOOKUP_OBJECT (window1, frame1, "frame1");
      GLADE_HOOKUP_OBJECT (window1, alignment1, "alignment1");
      GLADE_HOOKUP_OBJECT (window1, hbox2, "hbox2");
      GLADE_HOOKUP_OBJECT (window1, vbox4, "vbox4");
      GLADE_HOOKUP_OBJECT (window1, label4, "label4");
      GLADE_HOOKUP_OBJECT (window1, comboboxentry1, "comboboxentry1");
      GLADE_HOOKUP_OBJECT (window1, vbox5, "vbox5");
      GLADE_HOOKUP_OBJECT (window1, label5, "label5");
      GLADE_HOOKUP_OBJECT (window1, comboboxentry2, "comboboxentry2");
      GLADE_HOOKUP_OBJECT (window1, vbox6, "vbox6");
      GLADE_HOOKUP_OBJECT (window1, label6, "label6");
      GLADE_HOOKUP_OBJECT (window1, comboboxentry3, "comboboxentry3");
      GLADE_HOOKUP_OBJECT (window1, label3, "label3");
      GLADE_HOOKUP_OBJECT (window1, frame2, "frame2");
      GLADE_HOOKUP_OBJECT (window1, alignment2, "alignment2");
      GLADE_HOOKUP_OBJECT (window1, table1, "table1");
      GLADE_HOOKUP_OBJECT (window1, comboboxentry4, "comboboxentry4");
      GLADE_HOOKUP_OBJECT (window1, comboboxentry5, "comboboxentry5");
      GLADE_HOOKUP_OBJECT (window1, label8, "label8");
      GLADE_HOOKUP_OBJECT (window1, label9, "label9");
      GLADE_HOOKUP_OBJECT (window1, label7, "label7");
      GLADE_HOOKUP_OBJECT (window1, vbox1, "vbox1");
      GLADE_HOOKUP_OBJECT (window1, label1, "label1");
      GLADE_HOOKUP_OBJECT (window1, entry1, "entry1");
      GLADE_HOOKUP_OBJECT (window1, label2, "label2");
      GLADE_HOOKUP_OBJECT (window1, scrolledwindow1, "scrolledwindow1");
      GLADE_HOOKUP_OBJECT (window1, textview1, "textview1");
      GLADE_HOOKUP_OBJECT (window1, hbox3, "hbox3");
      GLADE_HOOKUP_OBJECT (window1, button4, "button4");
      GLADE_HOOKUP_OBJECT (window1, button5, "button5");
      GLADE_HOOKUP_OBJECT (window1, button6, "button6");
     
      return window1;
    }
    merci

  8. #28
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Citation Envoyé par pepsister
    voici le code qui est dans l'interface.c
    Ouais j'y vois déjà plus clair ... tu crois quoi ? La fonction create_window1 ne fait que créer ta fenêtre, je crois que le nom est assez explicit ! Ce que tu veux toi, dépend d'événements utilisateurs donc enregistrement et appels de callback comme je l'ai fait dans mon exemple, le code que tu as ajouté ne sert strictement à rien ici !

    Citation Envoyé par pepsister
    peut etre est ce parce que je n'ai pas appeler la fonction activate comme toi ?
    Comme dit plus haut, si tu veux gérer des événements utilisateurs comme je t'ai montré dans mon exemple, il faut les gérer, ici tu ne gère rien du tout. L'événement que j'ai mis en place dans mon exemple permet de valider le GtkEntry par l'appui sur la touche Entrée ce qui est assez intuitif.

    Citation Envoyé par pepsister
    mais définir une structure ca encore j'ai vu mais je pense pouvoir faire sans car je ne la maitrise pas
    Pour maîtrise faut s'entraîner, pas de secret et cette solution, si tu doit traiter plusieurs widgets dans une même fonction, est très bien et assez souple car tu peux ajouter des widgets supplémentaire quand tu en as besoin

    Citation Envoyé par pepsister
    par contre je ne comprend pas ton static void
    Si tu connais ton C tu devrais le savoir, j'ai mis le mot clé static car dans mon exemple, tout est dans un même fichier source j'ai donc mis mon callback en privé
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  9. #29
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 302
    Par défaut
    Si tu connais ton C tu devrais le savoir, j'ai mis le mot clé static car dans mon exemple, tout est dans un même fichier source j'ai donc mis mon callback en privé
    je connais mon C mais ca j'ai pas appris
    Sinon j'ai fais un copier coller dans une nouvelle fenêtre pour voir ce que ca donnait mais moi ce que je veux ce n'est pas que l'utilisateur tape un nombre à la main et q'un appuyant sur entrer on lui affiche automatiquement fevrier, en fait je désire qu'il choississe à l'aide de la flèche un nombre compris entre1 et 31 (eux sont déja rentrer) et suivant le nombre qu'il choisit (imaginons 20) on lui propose de sélectionner à l'aide de la flèche tout les mois de l'année par contre s'il choisit 31 onlui propose que les mois ayant un 31, moi pour l'instant je n'ai mis que janvier et fevrier pour tester le programme.
    Désolé j'ai du encore mal m'exprimé.

  10. #30
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Citation Envoyé par pepsister
    je connais mon C mais ca j'ai pas appris
    Mouais, ca fait parti des bases du C tout de même, il n'est jamais très bon d'utiliser un bibliothèque aussi évoluée et complète que GTK+ sans maîtriser un minimum le langage

    Citation Envoyé par pepsister
    [...] mais moi ce que je veux ce n'est pas que l'utilisateur tape un nombre à la main et q'un appuyant sur entrer on lui affiche automatiquement fevrier, en fait je désire qu'il choississe à l'aide de la flèche un nombre compris entre1 et 31 (eux sont déja rentrer) et suivant le nombre qu'il choisit (imaginons 20) on lui propose de sélectionner à l'aide de la flèche tout les mois de l'année par contre s'il choisit 31 onlui propose que les mois ayant un 31, moi pour l'instant je n'ai mis que janvier et fevrier pour tester le programme.
    Bin c'est pareil, il faut passer par des callback il faut juste alors utiliser le signal "changed" du GtkComboBox que tu peux trouver dans la ref officielle qu'il conviens de consulter avant tout autre chose. Mais dans ton cas, si tu ne veux pas que l'utilisateur entre des données à la main, je ne vois franchement pas l'interet d'utiliser un GtkComboBoxEntry, un simple GtkComboBox suffit largement !

    Le signal indiqué plus haut, tu le lies au combo contenant les nombre et lors de l'enregistrement du callback avec g_signal_connect, tu passes en dernier argument le second GtkComboBox !

    N'oublie pas par contre de remplir tes deux GtkComboBox dans ta fonction create_window1 dans ce cas !
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  11. #31
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 302
    Par défaut
    je n'y peux rien si mon prof nous impose ca je suis d'accord avec toi n'empeche que je n'ai pas le choix malgrè que je débute en C je dois faire mon projet sur gtk avec glade.
    Le signal "changed" je le trouves dans les signaux de glade c'est ca?
    pour la gtkcompboboxentry c'est glade qui la met automatiquement ce n'est pas moi j'ai juste déplacer le petit bouton représnetant une combobox et il me mets ca sinon comment dois je faire?

    Le signal indiqué plus haut, tu le lies au combo contenant les nombre et lors de l'enregistrement du callback avec g_signal_connect, tu passes en dernier argument le second GtkComboBox !

    N'oublie pas par contre de remplir tes deux GtkComboBox dans ta fonction create_window1 dans ce cas !
    et là j'ai rien compris de ce que je dois faire. Je compprend pas ce que je dois lier ni ce que je dois mettre dans create window1
    peux tu etre un peu plus explicite quand je te dis que je débute c'est VRAI. Nos profs part du principe que l'on doit se faire aider et se débrouiller pour trouver les renseignements seul mais j'ai personne autour de moi qui peut m'aider donc du coup je le mets sur ce forum mais si je dois vous gonfler avec des trucs si simple pour vous
    merci

  12. #32
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Citation Envoyé par pepsister
    je n'y peux rien si mon prof nous impose ca je suis d'accord avec toi n'empeche que je n'ai pas le choix malgrè que je débute en C je dois faire mon projet sur gtk avec glade.
    Ouais les profs ont tendances à toujours être presser et sauter les étapes, en générale rien que pour le C il faut un minimum de 6 mois d'apprentissage

    Citation Envoyé par pepsister
    Le signal "changed" je le trouves dans les signaux de glade c'est ca?
    Je t'ai pourtant tout dit dans mon dernier message ... si je m'exprime mal dis-le moi et je ferais un effort...
    Citation Envoyé par Franck.H
    [...] il faut passer par des callback il faut juste alors utiliser le signal "changed" du GtkComboBox que tu peux trouver dans la ref officielle qu'il conviens de consulter avant tout autre chose
    Citation Envoyé par pepsister
    pour la gtkcompboboxentry c'est glade qui la met automatiquement ce n'est pas moi j'ai juste déplacer le petit bouton représnetant une combobox et il me mets ca sinon comment dois je faire?
    On s'enfout que ce soit Glade ou toi qui met en place tel ou tel widget, cela ne change rien, tu programmes en GTK+ toi, tu mets en place tes widgets par le biais de Glade et lui transforme le tout en programme GTK+, rien de plus alors pourquoi vouloir chercher plus loin ! Il faut arriver à faire la part des choses et faire abstraction totale de Glade sinon tu t'en sortira jamais. Glade n'est qu'un pauvre générateur de code, code qui est laid en plus de ca mais ce n'est rien de plus, tout ce que Glade fait toi tu peux le faire sans lui c'est tout

    Citation Envoyé par pepsister
    et là j'ai rien compris de ce que je dois faire. Je compprend pas ce que je dois lier ni ce que je dois mettre dans create window1
    En fait c'est pas compliqué, c'est vrai que lorsque parfois j'explique, je m'etale un peu de trop et alors les gens on un peu de mal .... m'enfin voilà le topo.

    Lier un signal et donc de ce fait un callback, c'est simplement utiliser la fonction g_signal_connect. Tu utilises ton combo avec les chiffres comme objet interceptant le signal et tu transmet en dernier argument de cette fonction le combo avec les mois ! Voici ce que ca pourrais donner:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    g_signal_connect (
       G_OBJECT (comboboxentry1),
       "changed",
       G_CALLBACK (ton_callback),
       (gpointer) comboboxentry2
    );
    Voilà, c'est tout simplement ceci. La signature de ton callback étant obligatoirement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    void        user_function                  (GtkComboBox *widget,
                                                gpointer     user_data)
    le widget comboboxentry2 se trouve dans l'argument user_data et il te faut donc le récupérer au moins sur un pointeur de type GtkWidget mais le mieux serait sur un pointeur de type GtkComboBox soit comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    void nom_callback (GtkComboBox * widget, gpointer p_data)
    {
       GtkComboBox * p_combo2 = p_data;
     
       /* ton traitement ici. */
    }
    Citation Envoyé par pepsister
    peux tu etre un peu plus explicite quand je te dis que je débute c'est VRAI. Nos profs part du principe que l'on doit se faire aider et se débrouiller pour trouver les renseignements seul mais j'ai personne autour de moi qui peut m'aider donc du coup je le mets sur ce forum mais si je dois vous gonfler avec des trucs si simple pour vous
    merci
    Biensûr que non tu me gonfle pas Si c'était le cas j'aurais abandonné depuis fort longtemps l'entraide sur developpez.com On est là pour ca aussi, aider les autres et parfois se faire aider, c'est ca le partage des connaissances et la connaissance ne sert à rien si elle n'est pas partagée
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  13. #33
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 302
    Par défaut
    en effet je suis bien loin des 6 mois pour apprendre le C
    sinon quand je compile tout va bien et quand j'éxécute dès que je choisis un chiffre avec ma comboboxentry1 il m'affiche une fenêtre noire avec un message d'erreur
    voici mon code dans callback.c
    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
     
    void
    on_comboboxentry1_changed(GtkComboBox *combobox,gpointer user_data)
    {
      int value = 0;
      const gchar *text = NULL;
      GtkComboBox * p_combo2 = user_data;
     
                                           /*récupération de la valeur dans la combobox1*/
      text=gtk_entry_get_text(GTK_ENTRY (GTK_BIN (combobox)->child));
    /*on transcrit la chaine en un nombre*/
     value=strtol(text, NULL,0);
     
      if (value==31)
      {
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("janvier"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("mars"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("mai"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("juillet"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("aout"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("octobre"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("decembre"));
    }
      else
      {
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("janvier"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("fevrier"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("mars"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("avril"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("mai"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("juin"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("juillet"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("aout"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("septembre"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("octobre"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("novembre"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("decembre"));
     
    }
    }
    et voici le code dans interface.c
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    g_signal_connect (G_OBJECT (comboboxentry1), "changed",
                        G_CALLBACK (on_comboboxentry1_changed),
                        (gpointer)comboboxentry2);
    dans interface.c il y aussi les déclarations des combobox et de la fenêtre evidemment,
    pourquoi ca marche pas?
    merci

  14. #34
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Ca doit surement venir du fait que tu veux remplir ton second GtkComboBoxEntry alors qu'il est créé ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    comboboxentry2 = gtk_combo_box_entry_new ();
    Les fonctions que tu utilses ici ne sont valable que s'il est créé avec l'autre fonction soit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    comboboxentry2 = gtk_combo_box_entry_new_text ();
    Au fait, si l'utilisateur n'est pas censé faire de saisies dans les GtkComboBoxEntry pouquoi avoir choisi ce widget au lieu de GtkComboBox ? Je pense que ce serait mieux de l'utiliser dans ce cas !

    Une petite chose en plus, ici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    value=strtol(text, NULL,0);
    préfère faire un cast sur la valeur de retour car strtol renvoie un long donc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    value = (int) strtol (text, NULL,0);
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  15. #35
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 302
    Par défaut
    Les fonctions que tu utilses ici ne sont valable que s'il est créé avec l'autre fonction soit:
    Code :
    comboboxentry2 = gtk_combo_box_entry_new_text ();
    en effet comme ca, ca marche mais je ne comprend pas pourquoi car pour la combobox1 c'est pareil elle est défini de la même facon que je l'avis défini et quand je la rempli à l'aide de glade il m'écrit ce code pour la remplir et ca marche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    gtk_combo_box_append_text (GTK_COMBO_BOX (comboboxentry1), _("1"));

    Au fait, si l'utilisateur n'est pas censé faire de saisies dans les GtkComboBoxEntry pouquoi avoir choisi ce widget au lieu de GtkComboBox ?
    en effet je suis d'accord avec toi mais c'est parce que je n'ai utilisé que les composants de glade et il ne propose que ca mais je veux bien le changer.
    J'ai juste à changer la création c'est ca?
    au lieu de mettre ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    comboboxentry1 = gtk_combo_box_entry_new_text ();
    je mets:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    combobox1 = gtk_combo_box_new_text ();
    sinon j'ai une autre petite difficultée c'est qu'il ne trouve jamais 31 pour value c'est à dire que quand je choisi le chiffre 31 il m'affiche tout les mois de l'année en fait il va directement dans le "else" pourtant on récupère bien le nombre de la combobox1?
    merci

  16. #36
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 302
    Par défaut
    désolé en fait je viens de regarder et pour la combobox1 on a bien mis un gtk_combo_box_entry_new_text()
    donc ok j'ai compris ceci en tout cas

  17. #37
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Citation Envoyé par pepsister
    J'ai juste à changer la création c'est ca?
    au lieu de mettre ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    comboboxentry1 = gtk_combo_box_entry_new_text ();
    je mets:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    combobox1 = gtk_combo_box_new_text ();
    Oui c'est ca Mais attention, dans ton callback il faudra changer alors ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    text=gtk_entry_get_text(GTK_ENTRY (GTK_BIN (combobox)->child));
    par ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    text = gtk_combo_box_get_active_text (combobox);
    Citation Envoyé par pepsister
    sinon j'ai une autre petite difficultée c'est qu'il ne trouve jamais 31 pour value c'est à dire que quand je choisi le chiffre 31 il m'affiche tout les mois de l'année en fait il va directement dans le "else" pourtant on récupère bien le nombre de la combobox1?
    Fait voir un printf juste après la conversion et avant d'entrer dans la condition logique if pour voir ce qu'il t'affiche comme valeur !
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  18. #38
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 302
    Par défaut
    j'ai déjà mis un printf avant la condition if mais question bête où est ce qu'il me l'affiche car j'y ai pensé pour voir en effet les valeurs qu'il me met mais il ne m'ouvre pas une fenêtre pour me donner la valeur, j'ai du oublier un truc mais je sais pas quoi.
    j'ai fait un printf("%d",value)
    ca je pense que c'est bon mais après faut qu'il me l'affiche quelque part?

  19. #39
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Tu n'as alors pas la console de Code::Blocks qui s'affiche (si tel est ton EDI mais sinon c'est sensiblement identique sur les autres). Dans ce cas, va dans le menu Project/Properties/

    Dans la liste déroulante où y est marqué "Project settings", tu met sur "Build target" puis dans type tu mets "Console application" tu enregistre ton projet puis tu recompiles
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  20. #40
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 302
    Par défaut
    j'ai dev C++ en francais et je trouve pas où c'est ce que tu m'as dit. Ce que je comprend pas , quand il y a une erreur il m'affiche une fenêtre console avec mes erreurs est ce que ca a un rapport?

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. PB de chargement de combobox avec une requete
    Par bubu1905 dans le forum Bases de données
    Réponses: 9
    Dernier message: 23/03/2005, 17h14
  2. [VB.NET] Remplir une ComboBox avec une requete sql
    Par graphicsxp dans le forum Windows Forms
    Réponses: 6
    Dernier message: 22/03/2005, 16h29
  3. Réponses: 2
    Dernier message: 26/07/2004, 14h34
  4. [GTK]installer Dev-C++ avec gtk 1.2 ...
    Par vbcasimir dans le forum Dev-C++
    Réponses: 2
    Dernier message: 02/02/2004, 14h34

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