Journal Programmation C et GTK+

Posté par  .
Étiquettes : aucune
0
31
mai
2003
Cher journal,

Depuis ce matin, je tente de faire passer une structure comme argument d'un fonction (je débute), suite a un click sur un bouton : voila les morceaux de code :


typedef struct maZolieStructure
{
...
gint a;
}MaZolieStructure;

void maFonction(GtkWidget *widget, MaZolieStructure *b)
{
printf("%d\n", b->a);
}


main(...)
{
....
MaZolieStructure b;
b.a = 3;
....
gtk_signal_connect(GTK_OBJECT(boutton),
"clicked",
GTK_SIGNAL_FUNC(maFonction),
&b
);
}


et quand je clique sur le bouton, il m'affiche un nombre aléatoire comme si mon poiteur pointait sur rien ;(

Merci de m'avoir, mon cher journal qui m'aide

PS : Comment faire pour ne pas oublier de cocher cette ... de case Mettre le journal en page principale ?
  • # Re: Programmation C et GTK+

    Posté par  (site web personnel) . Évalué à 0.

    si tu n'obtiens pas de réponse ici

    là : http://www.gtk-fr.org/(...)

    y'a un forum spécialisé
  • # Re: Programmation C et GTK+

    Posté par  . Évalué à 3.

    Bon, je me lance, à mon avis ca vient d'un fait tout simple (mais néanmoins problématique) :
    ta fonction "mafonction()" n'est pas :
    void maFonction(GtkWidget *widget, MaZolieStructure *b) ;
    mais
    void maFonction(GtkWidget *widget, gpointer b) ;
    _grosse_ nuance !

    Comme elle ne sais pas à priori comment utiliser b, il faut en préciser le type
    deux solutions à chaud :
    void maFonction(GtkWidget *widget, gpointer b)
    {
    printf("%d\n", (MaZolieStructure*)b->a);
    }

    ou

    void maFonction(GtkWidget *widget, gpointerb)
    {
    MaZolieStructure *mzs = (MaZolieStructure *)b;
    printf("%d\n", mzs->a);
    }

    voilà ca devrait marcher.
    ai-je été clair ?
    • [^] # Re: Programmation C et GTK+

      Posté par  . Évalué à 1.

      Merci beacoup, ca marche enfin ;) Je cmmencais a en avoir marre
      • [^] # Re: Programmation C et GTK+

        Posté par  . Évalué à 1.

        de rien !
        content que ca marche

        si ca t'interresse, je vais bientot lancer un projet en libre utilisant les libgtk2/glib, je vais essayer de documenter un peu mes sources pour que tout le monde puisse y voir clair.
        Et étant moi même plutot débutant en Gtk, j'essaierai d'etre le plus dispo possible pour discuter des sources avec qui le voudra


        http://pik.homeip.net/(...)


        (pour l'instant, pas grand chose en ligne, du blabla, un screenshot et un binaire qui ne marchait pas chez un pote :/, mais revenvez dans quelques jours )

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.