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 :

Le début toujours pas réussi !


Sujet :

GTK+ avec C & C++

  1. #1
    Membre confirmé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Février 2011
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suède

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Février 2011
    Messages : 67
    Par défaut Le début toujours pas réussi !
    Bonjour


    J'ai quelque petits soucis avec mon mini-projet ,voilà l'application doit permettre à lutilisateur d'entrer son nom,prénom.. et le type , après ça doit l'ammener à sa page contenant le capital de points qu'il a ...son adresse....j'ai essayé certains codes que j'ai trouvé sur un tutoriel mais ça ne me permet point de taper du texte
    Pourriez vous m'aider s'il vous plaît !
    Merci d'avance
    Bonne journée.

  2. #2
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 315
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 315
    Billets dans le blog
    5
    Par défaut
    Bonjour.

    C'est beaucoup trop vague pour avoir une réponse digne de ce nom. Montre-nous un peu ton code, histoire d'avoir une base de travail.

  3. #3
    Membre confirmé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Février 2011
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suède

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Février 2011
    Messages : 67
    Par défaut
    pour valider ça ne marche toujours pas !! comment donc pouvoir acceder à une nouvelle page contenant les informations de l'utilisateur qui a entré son code ?? et puis pour le type j'ai essayé d'inclure des boutons radio parce que les types sont définis mais j'ai pas réussi à les mettre !

    Merci d'avance...

  4. #4
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 315
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 315
    Billets dans le blog
    5
    Par défaut
    Un début de réponse.

    Chaque widget écoute un ou plusieurs signaux. Lorsqu'on ajoute un widget à son interface il faut indiquer pour le signal qui nous intéresse quelle fonction il faut exécuter. On appelle ces fonctions des callback en anglais dans le texte.

    Pour ton code tu insère une entrée texte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pEntry = gtk_entry_new();
    Mais tu n'a spécifié aucun callback exécuté lorsqu'on valide ce que l'on a écrit dedans.

    Les GtkEntry écoutent les signaux suivants :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     "activate"                                       : Run Last / Action
      "backspace"                                      : Run Last / Action
      "copy-clipboard"                                 : Run Last / Action
      "cut-clipboard"                                  : Run Last / Action
      "delete-from-cursor"                             : Run Last / Action
      "icon-press"                                     : Run Last
      "icon-release"                                   : Run Last
      "insert-at-cursor"                               : Run Last / Action
      "move-cursor"                                    : Run Last / Action
      "paste-clipboard"                                : Run Last / Action
      "populate-popup"                                 : Run Last
      "preedit-changed"                                : Run Last / Action
      "toggle-overwrite"                               : Run Last / Action
    Celui qui nous intéresse ici est le signal "activate". Pour ce signal on doit attaché un callback qui doit avoir le prototype suivant :
    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
    The "activate" signal
     
    void                user_function                      (GtkEntry *entry,
                                                            gpointer  user_data)      : Run Last / Action
    A keybinding signal which gets emitted when the user activates the entry.
     
    Applications should not connect to it, but may emit it with g_signal_emit_by_name() if they need to control activation programmatically.
     
    The default bindings for this signal are all forms of the Enter key.
     
    entry*:
     
    The entry on which the signal is emitted
    user_data*:
     
    user data set when the signal handler was connected.
    Pour ton code on attache un callback comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    pEntry = gtk_entry_new();
      // Attachement d'un callback au signal "activate" du pEntry
      g_signal_connect(G_OBJECT(pEntry), "activate", G_CALLBACK(callback_entry_activate_event), NULL);
    Ensuite on crée la fonction callback associée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void callback_entry_activate_event (GtkEntry *entry, gpointer  user_data)
    {
      g_print("Le GtkEntry a été validé. Le texte ecrit est : %s\n", gtk_entry_get_text(entry));
    }
    Ce principe est bien sûr à appliquer à tout widget qui interagit avec l'utilisateur.
    Ici a chaque écriture dans le GtkEntry et validation par la touche entrée le texte écrit s'affiche en console.

  5. #5
    Membre confirmé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Février 2011
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suède

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Février 2011
    Messages : 67
    Par défaut
    lorsque j'ajoutee le callback rien ne se compile je ne vois pas pourquoi ??

  6. #6
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 315
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 315
    Billets dans le blog
    5
    Par défaut
    Encore trop laconique comme remarque. Montre-nous les warnings du compilateur pour que l'on comprenne.

  7. #7
    Membre confirmé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Février 2011
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suède

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Février 2011
    Messages : 67
    Par défaut
    pièce jointe

  8. #8
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 315
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 315
    Billets dans le blog
    5
    Par défaut
    Voila ton code modifié qui tient compte de mes remarques:
    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
    #include <stdlib.h>
    #include <gtk/gtk.h>
     
    void callback_entry_activate_event (GtkEntry *entry, gpointer  user_data)
    {
      g_print("Le GtkEntry a été validé. Le texte ecrit est : %s\n", gtk_entry_get_text(entry));
    }
     
    int main(int argc, char **argv)
    {
      GtkWidget *pWindow;
      GtkWidget *pVBox;
      GtkWidget *pFrame;
      GtkWidget *pVBoxFrame;
      GtkWidget *pSeparator;
      GtkWidget *pEntry;
      GtkWidget *pLabel;
      gchar *sUtf8;
     
      gtk_init(&argc, &argv);
     
      pWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
     
      /* On ajoute un espace de 5 sur les bords de la fenetre */
      gtk_container_set_border_width(GTK_CONTAINER(pWindow), 5);
      gtk_window_set_title(GTK_WINDOW(pWindow), "GtkEntry et GtkSeparator");
      gtk_window_set_default_size(GTK_WINDOW(pWindow), 320, 200);
      g_signal_connect(G_OBJECT(pWindow), "destroy", G_CALLBACK(gtk_main_quit), NULL);
     
      pVBox = gtk_vbox_new(TRUE, 0);
      gtk_container_add(GTK_CONTAINER(pWindow), pVBox);
     
      /* Creation du premier GtkFrame */
      pFrame = gtk_frame_new("IDENTITE DU TITULAIRE");
      gtk_box_pack_start(GTK_BOX(pVBox), pFrame, TRUE, FALSE, 0);
     
      /* Creation et insertion d une boite pour le premier GtkFrame */
      pVBoxFrame = gtk_vbox_new(TRUE, 0);
      gtk_container_add(GTK_CONTAINER(pFrame), pVBoxFrame);
     
      /* Creation et insertion des elements contenus dans le premier GtkFrame */
      pLabel = gtk_label_new("Nom :");
      gtk_box_pack_start(GTK_BOX(pVBoxFrame), pLabel, TRUE, FALSE, 0);
      pEntry = gtk_entry_new();
      gtk_box_pack_start(GTK_BOX(pVBoxFrame), pEntry, TRUE, FALSE, 0);
      sUtf8 = g_locale_to_utf8("PRENOM :", 1,NULL, NULL, NULL);
      pLabel = gtk_label_new(sUtf8);
      g_free(sUtf8);
      gtk_box_pack_start(GTK_BOX(pVBoxFrame), pLabel, TRUE, FALSE, 0);
      pEntry = gtk_entry_new();
      gtk_box_pack_start(GTK_BOX(pVBoxFrame), pEntry, TRUE, FALSE, 0);
     
      /* Creation du deuxieme GtkFrame */
      pFrame = gtk_frame_new("CATEGORIE DU PERMIS ");
      gtk_box_pack_start(GTK_BOX(pVBox), pFrame, TRUE, FALSE, 0);
     
      /* Creation et insertion d une boite pour le deuxieme GtkFrame */
      pVBoxFrame = gtk_vbox_new(TRUE, 0);
      gtk_container_add(GTK_CONTAINER(pFrame), pVBoxFrame);
     
      /* Creation et insertion des elements contenus dans le deuxieme GtkFrame */
      pLabel = gtk_label_new("TYPE :");
      gtk_box_pack_start(GTK_BOX(pVBoxFrame), pLabel, TRUE, FALSE, 0);
     
      pEntry = gtk_entry_new();
      // Attachement d'un callback au signal "activate" du pEntry
      g_signal_connect(G_OBJECT(pEntry), "activate", G_CALLBACK(callback_entry_activate_event), NULL);
     
      gtk_box_pack_start(GTK_BOX(pVBoxFrame), pEntry, TRUE, FALSE, 0);
      gtk_box_pack_start(GTK_BOX(pVBoxFrame), pLabel, TRUE, FALSE, 0);
      gtk_widget_show_all(pWindow);
      gtk_main();
      return EXIT_SUCCESS;
    }

  9. #9
    Membre confirmé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Février 2011
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suède

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Février 2011
    Messages : 67
    Par défaut
    ça se compile parfaitement mais avec aucun changement , les cases à remplir exisent et tout mais sans validation ni rien du tout

  10. #10
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 315
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 315
    Billets dans le blog
    5
    Par défaut
    La dernière ligne d'entrée est modifiée. Tapes un texte dedans et valide avec la touche entrée. Le texte que tu as tapé est alors affiché en console.

  11. #11
    Membre confirmé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Février 2011
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suède

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Février 2011
    Messages : 67
    Par défaut
    je rouvre mon compilateur il me donne une erreur !! pièce jointe

  12. #12
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 315
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 315
    Billets dans le blog
    5
    Par défaut
    return 0; résoudra le problème.

Discussions similaires

  1. Réponses: 6
    Dernier message: 04/07/2006, 11h56
  2. Réponses: 4
    Dernier message: 29/05/2006, 05h48
  3. N'arrive toujours pas à règler son problème de lettres
    Par Antigonos Ier Gonatas dans le forum C++
    Réponses: 3
    Dernier message: 04/04/2006, 00h05
  4. Réponses: 8
    Dernier message: 16/09/2003, 19h29

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