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 :

Où trouver la signature des signaux?


Sujet :

GTK+ avec C & C++

  1. #1
    Membre régulier
    Homme Profil pro
    chercheur
    Inscrit en
    Décembre 2012
    Messages
    195
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : chercheur

    Informations forums :
    Inscription : Décembre 2012
    Messages : 195
    Points : 84
    Points
    84
    Par défaut Où trouver la signature des signaux?
    Bonjour,

    Ca fait des années que je code avec GTK+2, et je retombe, encore et encore et encore, à chaque fois sur le même problème. Je décide donc d'ouvrir un post ici.

    Je n'arrive pas à trouver (dans la doc on-line) la signature des callback associés à des signaux, ni même parfois simplement la liste des signaux.

    J'avais, il y a 3 ans environ, glissé cette question dans un post et liberforce m'avait gentillement donné des explications (voir ici). Même si ces indications ont été utiles, elles ne suffisent pas.

    Reprenons l'exemple dans ce post d'il y a 3 ans. J'ai un widget créé par gtk_drawing_area_new() qui émet un signal "expose_event" et la fonction callback appelée est de type gboolean, et retourne donc un TRUE ou un FALSE (ceci provient de codes précédents, et de différents conseils et tutos que j'ai trouvé sur le web). Et bien dans cet exemple, que ce soit avec la doc de GTK+2 ou GTK+3, je ne trouve pas de trace de ce signal "expose_event" pour ce widget là, ni même en remontant dans la hierarchie des classes, et pas de trace non plus du prototype de la fonction callback qu'il faut construire lorsque ce signal est émis. Encore par exemple, donc, je ne trouve dans la doc aucune indication de la différence entre un renvoi d'un TRUE ou d'un FALSE pour cette fonction. Et j'ai souvent ce problème pour n'importe quel type de widget.

    C'est vraiment moi qui est un problème, ou bien la doc est mal foutue ?

    Dans tous les cas, je suis preneur d'un éclaircissement pour savoir comment trouver l'information recherchée.

    D'avance merci pour toute aide sur ce point.

    Cordialement, Eric.

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

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

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

    La solution est souvent simple, encore faut-il savoir la trouver. Je comprends le trouble qui t'anime mais nous allons faire en sorte d'y remédier .

    Lorsque tu regardes une page de la documentation officielle pour un widget donné, tu as en haut une liste horizontale de liens. Si on prend la page du GtkWidget on a :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Top  |  Description  |  Object Hierarchy  |  Implemented Interfaces  |  Known Derived Interfaces  |  Properties  |  Style Properties  |  Signals
    Il te suffit de cliquer sur le lien Signals pour accéder à la listes des signaux émis par ce widget.

    Pour reprendre ton exemple, tu vas nous dire que tu ne trouves pas "expose-event" ! Et nous de répondre : "C'est normal" . Ce signal n'existe plus en Gtk3. Il est remplacé par "draw".

    Maintenant que tu sais accéder à la liste des signaux émis par un widget, il te suffit de cliquer sur celui qui t'intéresse pour accéder immédiatement à son prototype.

    J'espère avoir répondu à tes attentes.

  3. #3
    Membre régulier
    Homme Profil pro
    chercheur
    Inscrit en
    Décembre 2012
    Messages
    195
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : chercheur

    Informations forums :
    Inscription : Décembre 2012
    Messages : 195
    Points : 84
    Points
    84
    Par défaut
    Merci gerald3d,

    Cette réponse est utile.

    Encore faut-il savoir que expose-event dans GTK+2 a été remplacé par draw dans GTK+3 ! (ce que j'ignorais..).

    J'imagine que la doc de GTK+2 n'est plus disponible online (de fait, poser une requête sur la page du référence manuel de GTK+2 donne une réponse dans le reference manuel de GTK+3), et j'imagine donc que l'ensemble de mes problèmes dans cette discussion est lié au passage de GTK+2 à GTK+3..

    Merci encore pour l'explication supplémentaire !

    Eric.

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

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

    Informations forums :
    Inscription : Février 2008
    Messages : 2 291
    Points : 4 941
    Points
    4 941
    Billets dans le blog
    5
    Par défaut
    La documentation officielle pour gtk2 est toujours disponible ici 👍

  5. #5
    Membre régulier
    Homme Profil pro
    chercheur
    Inscrit en
    Décembre 2012
    Messages
    195
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : chercheur

    Informations forums :
    Inscription : Décembre 2012
    Messages : 195
    Points : 84
    Points
    84
    Par défaut
    Citation Envoyé par gerald3d Voir le message
    La documentation officielle pour gtk2 est toujours disponible ici 👍
    Merci gerald3d pour ce lien. Je le connaissais. Cependant, si - sur la page correspondante - je cherche la doc, par exemple sur la fonction gtk_drawing_area_new() (dans la bandeau noir "search" en haut), je récupère en retour des pages de doc sur gtk3. C'est pas très pratique, reconnaissons-le, et ça brouille un peu les pistes pour s'y retrouver. Non ?

    Merci encore en tout cas pour la disponibilité,

    Eric.

  6. #6
    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,

    Citation Envoyé par eric1708 Voir le message
    Merci gerald3d,
    Encore faut-il savoir que expose-event dans GTK+2 a été remplacé par draw dans GTK+3 ! (ce que j'ignorais..).
    dans la documentation de GTK 3, tu as une section "migration" où tu trouves différents guides.
    https://developer.gnome.org/gtk3/stable/migrating.html

    Tu as tout un guide de migration de GTK 2 → GTK 3:
    https://developer.gnome.org/gtk3/sta...ng-2-to-3.html

    Tu as aussi des guides de migration pour remplacer les widgets ou fonctionnalités obsolètes par leur équivalent plus moderne. Par exemple ici la migration de GtkBox vers GtkGrid.
    https://developer.gnome.org/gtk3/sta...g-GtkGrid.html

    Si tu veux être tenu des évolutions de GTK, le mieux c'est tout de même de lire leur blog:
    https://blog.gtk.org

    Parce que je ne veux pas te faire peur, mais GTK 3 est là depuis 6 ans (février 2011), et les plans à présent c'est d'accélérer les sorties pour passer à une version majeure tous les 2 à 3 ans:
    https://blog.gtk.org/2016/09/01/vers...romise-in-gtk/

    Dans tous les cas, GTK évolue, c'est normal, c'est sain, et c'est un signe de vitalité
    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)

  7. #7
    Membre régulier
    Homme Profil pro
    chercheur
    Inscrit en
    Décembre 2012
    Messages
    195
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : chercheur

    Informations forums :
    Inscription : Décembre 2012
    Messages : 195
    Points : 84
    Points
    84
    Par défaut
    Ok merci pour ces infos.

    Et je n'ai pas peur !

    Eric.

  8. #8
    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
    Citation Envoyé par eric1708 Voir le message
    Cependant, si - sur la page correspondante - je cherche la doc, par exemple sur la fonction gtk_drawing_area_new() (dans la bandeau noir "search" en haut), je récupère en retour des pages de doc sur gtk3. C'est pas très pratique, reconnaissons-le, et ça brouille un peu les pistes pour s'y retrouver. Non ?
    Quand la correspondance existe, le site renvoie vers la dernière version supportée, parce que ce serait lourd de reproposer tous les résultats. Si tu tapes une recherche incomplète en revanche (ex: "gtk_drawing_area_ne", où il manque la dernière lettre) , il te propose toutes les versions de GTK.

    Pour éviter ce problème, et parce que c'est plus rapide et efficace, je te conseille d'installer et utiliser devhelp. C'est une application qui regroupe les documentations au format gtk-doc. Tu y trouveras donc GLib, GTK, cairo, GStreamer, et tout ce qu'il faut dans l'écosystème GNOME. La version de la documentation correspond exactement à la version des paquets de développement installés sur ton système. Tu n'auras donc que la doc des bibliothèques de ton système, pas celle des versions plus anciennes ou plus récentes de la bibliothèque. Si tu es sous Windows, devhelp est aussi disponible (via MSYS2).
    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)

  9. #9
    Membre régulier
    Homme Profil pro
    chercheur
    Inscrit en
    Décembre 2012
    Messages
    195
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : chercheur

    Informations forums :
    Inscription : Décembre 2012
    Messages : 195
    Points : 84
    Points
    84
    Par défaut
    Ok, je suis effectivement sous Windows. Je vais voir si je peux poser devhelp.

    Merci !

    Eric.

Discussions similaires

  1. CFileDialog où trouver l'ID des controles?
    Par giova_fr dans le forum MFC
    Réponses: 1
    Dernier message: 04/11/2005, 18h12
  2. Réponses: 4
    Dernier message: 27/02/2005, 21h43
  3. afficher la signature des opérations dans XDE
    Par ChristopheH dans le forum Rational
    Réponses: 1
    Dernier message: 24/05/2004, 15h41
  4. Où trouver la liste des caractères spéciaux?
    Par gamez dans le forum Langage
    Réponses: 3
    Dernier message: 19/08/2003, 17h54

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