Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 26/09/2005, à 22:00

Templar

Gtkmm : problème avec les signaux !

bonjour à tous,

j'apprend en ce moment le C++, et en particuliers l'utilisation avec la lib Gtkmm.
Voici mon code :

#include <gtkmm.h>
#include <iostream>

void on_cliquer() {

	std::cout << "Bonjour" << std::endl;
}

int main(int argc, char **argv)
{
    Gtk::Main app(argc, argv);
    Gtk::Window w;
    Gtk::VBox vb;
    w.add(vb);

    Gtk::Label l;
    vb.pack_start(l);
    l.show();
    Gtk::Entry e;
    vb.pack_start(e);
    e.show();
    Gtk::Button b("Bonjour !");
    b.signal_clicked().connect(sigc::mem_fun(&on_cliquer));
    vb.pack_start(b);
    b.show();

    vb.show();
    app.run(w);
    return 0;
}

Et l'erreur qui m'amène à poster :

templar@templar:~/c++$ g++ ~/c++/essai.cpp -o ~/c++/simple `pkg-config gtkmm-2.4 --cflags --libs`
/home/templar/c++/essai.cpp: Dans function « int main(int, char**) »:
/home/templar/c++/essai.cpp:23: error: no matching function for call to `
   mem_fun(void (*)())'

Merci d'avance tongue

Hors ligne

#2 Le 26/09/2005, à 22:15

rihegher

Re : Gtkmm : problème avec les signaux !

Templar a écrit :
    b.signal_clicked().connect(sigc::mem_fun(&on_cliquer));

Et l'erreur qui m'amène à poster :

/home/templar/c++/essai.cpp:23: error: no matching function for call to `
   mem_fun(void (*)())'

pour moi c un probleme de passage de parametre, soit il attend pas le meme type, soit il en attend plusieurs, et vu l exemple "hello world!" suivant http://www.gtkmm.org/docs/gtkmm-2.4/doc … 03s06.htmlje pense qu il lui manque tout simplement un parametre,

sinon courage, le c++ c puissant mais je trouve ca un peu chaud

Dernière modification par rihegher (Le 26/09/2005, à 22:16)

Hors ligne

#3 Le 26/09/2005, à 23:43

marcounet

Re : Gtkmm : problème avec les signaux !

Chez moi ça marche si je fais ceci :

b.signal_clicked().connect(sigc::ptr_fun(&on_cliquer));

Marcounet des Brumes

Hors ligne

#4 Le 27/09/2005, à 20:01

Templar

Re : Gtkmm : problème avec les signaux !

Effectivement ptr_fun fonctionne =\

Merci smile

Hors ligne