Forum Programmation.c++ Gtkmm et les Pixbufs

Posté par (page perso) .
Tags : aucun
0
7
juil.
2004
Je precise tout de suite que je ne suis pas un expert en Gtkmm, ni en gtk tout court. Qui plus est, je n'ai pas d'environnement de debug sur ma machine de dev (un comble !), donc difficile de se rendre compte de ce qui se passe exactement.

Voici donc mon probleme:
Si je cree un widget Image, chargeant un simple fichier png

Gtk::Image *pImg= new Image ("/x/y/z/toto.png");

Ca marche tres bien. En revanche, si je desire passer par un Pixbuf (ce qui doit etre le cas a terme, pour des raisons trop longues a expliquer ici), je pense que le code suivant devrait etre correct.

Gtk::Image *pImg= new Image (Gdk::Pixbuf::create_from_file("/x/y/z/toto.png"));

Cependant, rien ne s'affiche


API widget Image : http://www.gtkmm.org/docs/gtkmm-2.4/docs/reference/html/classGtk_1_(...)

API Pixbuf :

http://www.gtkmm.org/docs/gtkmm-2.4/docs/reference/html/classGdk_1_(...)
  • # refptr

    Posté par (page perso) . Évalué à 2.

    tu vois bien dans l'API de Gtk::Image ce drôle de RefPtr dans le constructeur que tu veux utiliser ? et tu le passes sous silence comme ça ? c'est pas bien sérieux :)

    Glib::RefPtr<Gdk::Pixbuf> pixbuf = Gdk::Pixbuf::create_from_file("/x/y/z/toto.png")
    Gtk::Image *pImg= new Image(pixbuf);
    • [^] # Re: refptr

      Posté par (page perso) . Évalué à 1.

      vi, mais c'est pas sense changer quoi que ce soit : je passe l'objet par copie, donc si c'est bien implemente dans gtkmm c'est sense augmenter le compteur de reference. D'ailleurs j'avais d'abord essaye le code que tu me donnes, ca ne marchait pas non plus =oP

      Vu le flot de reponses que ca genere, je crois que je vais aller poser la question sur les mailing lists de gtkmm ;o)
  • # Trouve !

    Posté par (page perso) . Évalué à 0.

    aye, j'ai trouve !
    le code tout autour est du gtk en C, par consequent Gtk::Main n'etait pas instancie.
    Il suffit de remplacer le gtk_init par l'instanciation de Gtk::Main theMain et le gtk_main par theMain.run() et voila.

    Merci au channel c++ sur irc.gnome.org

Suivre le flux des commentaires

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