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 :

Gdk::Pixbuf Comment ça marche?


Sujet :

GTK+ avec C & C++

  1. #1
    Membre régulier
    Inscrit en
    Septembre 2004
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 187
    Points : 97
    Points
    97
    Par défaut Gdk::Pixbuf Comment ça marche?
    Bonjour,
    Je tente toujours de développer la partie graphique de mon jeu d'échec et j'ai besoin de pouvoir "re dimensionner" à loisir les pièces de l'échiquier.
    En regardant du côté de la doc j'ai trouvé des fonctions tout à fait intéressantes au sein de la classe Gdk:: Pixbuf.
    J'ai donc déclaré un Gdk:: Pixbuf dans la déclarartion de ma classe:
    Et dans mon .cc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    m_pixbuf.create_from_file("case-blanche.jpg");
    Voici la réponse du compilateur:
    /home/.../CCaseblanche.cc||In constructor ‘CCaseblanche::CCaseblanche(int, int)’: |
    /home/.../CCaseblanche.cc|4|erreur: no matching function for call to ‘Gdk:: Pixbuf:: Pixbuf()’|
    /usr/include/gdkmm-2.4/gdkmm/pixbuf.h|399|note: candidats sont: Gdk:: Pixbuf:: Pixbuf(const Glib::RefPtr<Gdk::Image>&, const Glib::RefPtr<Gdk::Colormap>&, int, int, int, int, int, int)|
    /usr/include/gdkmm-2.4/gdkmm/pixbuf.h|393|note: Gdk:: Pixbuf:: Pixbuf(const Glib::RefPtr<Gdk::Image>&, int, int, int, int)|
    /usr/include/gdkmm-2.4/gdkmm/pixbuf.h|380|note: Gdk:: Pixbuf:: Pixbuf(const Glib::RefPtr<Gdk::Image>&, const Glib::RefPtr<Gdk::Colormap>&, int, int, int, int)|
    /usr/include/gdkmm-2.4/gdkmm/pixbuf.h|364|note: Gdk:: Pixbuf:: Pixbuf(const Glib::RefPtr<Gdk:: Drawable>&, const Glib::RefPtr<Gdk::Colormap>&, int, int, int, int, int, int)|
    /usr/include/gdkmm-2.4/gdkmm/pixbuf.h|358|note: Gdk:: Pixbuf:: Pixbuf(const Glib::RefPtr<Gdk:: Drawable>&, int, int, int, int)|
    /usr/include/gdkmm-2.4/gdkmm/pixbuf.h|345|note: Gdk:: Pixbuf:: Pixbuf(const Glib::RefPtr<Gdk:: Drawable>&, const Glib::RefPtr<Gdk::Colormap>&, int, int, int, int)|
    /usr/include/gdkmm-2.4/gdkmm/pixbuf.h|270|note: Gdk:: Pixbuf:: Pixbuf(GdkPixbuf*)|
    /usr/include/gdkmm-2.4/gdkmm/pixbuf.h|269|note: Gdk:: Pixbuf:: Pixbuf(const Glib::ConstructParams&)|
    /usr/include/gdkmm-2.4/gdkmm/pixbuf.h|265|note: Gdk:: Pixbuf:: Pixbuf(const Gdk:: Pixbuf&)|
    ||=== Build finished: 1 errors, 0 warnings ===|
    Manifestement je ne comprend rien à Gdk.
    Quelqu'un pourrait-il m'éclairer de sa lanterne?

  2. #2
    Membre régulier
    Inscrit en
    Septembre 2004
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 187
    Points : 97
    Points
    97
    Par défaut
    J'ai un petit peu avancé:
    D'abord la fonction "create_from_file" renvoie un Glib::RefPtr<Gdk:: Pixbuf> et pas un Pixbuf. Donc j'ai changé ma déclaration dans le .h en:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Glib::RefPtr<Gdk::Pixbuf> m_ppixbuf;
    ensuite dans le .cc j'ai écris:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    m_ppixbuf=Gdk::Pixbuf::create_from_file("case-blanche.jpg");
    m_image.set(m_ppixbuf);
    add(m_image);
    Maintenant mon image s'affiche! Mais....
    J'aimerais utiliser la fonction "scale_simple" pour re-dimensionner mon image et là je ne comprend plus. La doc dit:
    Create a new Gdk:: Pixbuf containing a copy of src scaled to dest_width x dest_height .
    Comment "calibre-t-on" la fonction sur la src?

  3. #3
    Membre régulier
    Inscrit en
    Septembre 2004
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 187
    Points : 97
    Points
    97
    Par défaut
    Euh..Désolé d'avoir posté un sujet pour un truc aussi bête.
    En écrivant un truc du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Glib::Refptr<Gdk:: Pixbuf> ,m_ppixbuf,m_ppixbuftemp;
    Puis:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    m_ppixbuftemp=m_ppixbuf->scale_simple(50,50,Gdk:: INTERP_BILINEAR);
    Tout va bien.

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

Discussions similaires

  1. ToAsciiEx, comment cela marche ?
    Par mikyfpc dans le forum C++Builder
    Réponses: 2
    Dernier message: 17/02/2004, 22h39
  2. [MFC] list box : comment ça marche
    Par runn2 dans le forum MFC
    Réponses: 4
    Dernier message: 28/01/2004, 13h36
  3. [SYNEDIT] -> Comment ça marche ?
    Par MaTHieU_ dans le forum C++Builder
    Réponses: 2
    Dernier message: 18/01/2004, 20h11
  4. [TP][Turbo Vision] comment ça marche ??
    Par Costello dans le forum Turbo Pascal
    Réponses: 7
    Dernier message: 05/08/2003, 01h24
  5. [update][req. imbriquee] Comment ca marche ??
    Par terziann dans le forum Langage SQL
    Réponses: 3
    Dernier message: 11/07/2003, 13h51

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