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+ Discussion :

Erreur de compilation (?cast?)


Sujet :

GTK+

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 39
    Points : 43
    Points
    43
    Par défaut Erreur de compilation (?cast?)
    Bonjour,

    Alors j'ai une erreur lors de la compilation un problème de format, cast, d'après ce que je pense avoir compris:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    (c:30704): GLib-GObject-WARNING **: invalid cast from `GtkButton' to `GtkEntry'
     
    (c:30704): Gtk-CRITICAL **: gtk_entry_get_text: assertion `GTK_IS_ENTRY (entry)' failed
    Mais je ne vois pas comment "caster" si c'est ce qu'il faut faire...

    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
     
    #include <stdlib.h>
    #include <gtk/gtk.h>
     
    void Recup(GtkWidget *, gpointer data);
    int main(int argc,char **argv)
    {
        GtkWidget *pWindow;
        GtkWidget *box;
        GtkWidget *pLabel;
        GtkWidget *pValider;
        GtkWidget *pInput;
     
     
        gtk_init(&argc,&argv);
     
        pWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
        gtk_window_set_title(GTK_WINDOW(pWindow), "Les labels");
        gtk_window_set_default_size(GTK_WINDOW(pWindow), 320, 200);
     
        /* Création de la GtkBox verticale */
         box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
     
         pValider = gtk_button_new_with_label("Valider");
         pLabel = gtk_label_new("Programme de création de paquets");
         pInput =  gtk_entry_new();
     
         gtk_box_pack_start(GTK_BOX(box), pLabel, FALSE, TRUE, 0);
         gtk_box_pack_start(GTK_BOX(box), pInput, FALSE, TRUE, 0);
         gtk_box_pack_start(GTK_BOX(box), pValider, TRUE, FALSE, 0);
     
         /* Ajout de la GtkVBox dans la fenetre */
        gtk_container_add(GTK_CONTAINER(pWindow), box);
     
     
        g_signal_connect(G_OBJECT(pValider), "clicked", G_CALLBACK(Recup), (GtkWidget*) box);
     
     
        /* Affichage de la fenêtré et de tout ce qu'il contient */
        gtk_widget_show_all(pWindow);
     
        /* Connexion du signal
        /* On appelle directement la fonction de sortie de boucle */
        g_signal_connect(G_OBJECT(pWindow), "destroy", G_CALLBACK(gtk_main_quit), NULL);
     
        gtk_main();
     
        return EXIT_SUCCESS;
    }
    void Recup(GtkWidget *pInput, gpointer data)
    {
       const gchar *sText;
       /* Recuperation du texte contenu dans le GtkEntry */
         sText = gtk_entry_get_text(GTK_ENTRY(pInput));
     
     // printf("\n%s\n",sText);
     
    }
    Merci

  2. #2
    Modérateur

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    1 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 395
    Points : 2 002
    Points
    2 002
    Par défaut
    Bonjour,

    c'est parce que tu utilises mal la callback associée au signal clicked. Le premier argument de cette callback est le bouton sur lequel tu as cliqué, de type GtkButton. Or toi tu l'utilises comme un GtkLabel. Forcément, cela ne peut pas fonctionner.
    Documentation officielle GTK+ 3:
    GTK en C, GTK en Python

    Tutoriels GTK+ 3:
    GTK en C, GTK en Python

    Tutoriels par l'exemple (platform-demos):
    GTK (tous langages)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur de compilation après modification du Uses
    Par DevelOpeR13 dans le forum Langage
    Réponses: 5
    Dernier message: 30/10/2007, 14h23
  2. Réponses: 2
    Dernier message: 23/09/2003, 14h32
  3. Réponses: 10
    Dernier message: 22/09/2003, 21h58
  4. Réponses: 4
    Dernier message: 27/08/2003, 21h34
  5. Réponses: 2
    Dernier message: 04/03/2003, 23h24

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