On 19/08/2012 00:46, Arbol One wrote:
> Using Gtkmm - 2.22 on Win7 with MinGW.
>
>
>
>
>
> Well, this is what I have done so far, based on what I understand from the
> libsigc++ tutorial, what am I doing wrong?
>
>
>
> class myEntry : virtual public Gtk::VBox {
>
> private:
>
> Gtk::Entry* ntrTest;
>
> Gtk::Label* lblTest;
>
>
>
> public:
>
> sigc::signal<void> signal_detected; // gcc complains, if it is private??
This is the signal you're attempting to connect to. It's sigc::signal<void>,
meaning that the function signature for slots that you are connecting to it
should be void func(). However, the function you are connecting to it returns a
bool, as can be seen below:
As for gcc complaining if it is private, that is because non-friend classes
cannot access private members of a class. You were attempting to connect to
myEntry::signal_detected (a private member) from within runner::runner().
> [...]
>
> bool runner::warn_people() {
>
> std::cout << "Warning people" << std::endl;
>
> return false;
>
> }
>
> [...]
>
> runner::runner() {
>
> btnhb = Gtk::manage(new Gtk::HBox);
>
> vb = Gtk::manage(new Gtk::VBox);
>
> mentry = Gtk::manage(new jme::myEntry);
>
> ////////// >> compile time error !!
>
> mentry->signal_detected.connect( sigc::mem_fun(*this, &runner::warn_people) );
> [..]
--
Kind regards,
Loong Jin
Attachment:
signature.asc
Description: OpenPGP digital signature