Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/05/2011, 09:18
chacamariano
 
Fecha de Ingreso: enero-2008
Mensajes: 53
Antigüedad: 16 años, 11 meses
Puntos: 0
Error con una señal clicked()

Estoy haciendo una aplicación en C++ y glade y necesito que cuando se cliquea el botón cancelar borre los datos ingresados, tengo esto.
wndLogin_glade.hh
Código C++:
Ver original
  1. class wndLogin_glade : public Gtk::Window
  2. {
  3.  
  4.         GlademmData *gmm_data;
  5. public:
  6.         class Gtk::Window * wndLogin;
  7. protected:
  8.    
  9.         class Gtk::Button * btnCancelar;
  10.      
  11.         wndLogin_glade();
  12.  
  13.         ~wndLogin_glade();
  14. private:  
  15.         virtual bool on_btnCancelar_key_press_event(GdkEventKey *ev) = 0;
  16.         virtual void on_btnCancelar_clicked();
  17. };
wndLogin_glade.cc //A donde están las señales
Código C++:
Ver original
  1. /* signals */
  2.    btnCancelar->signal_key_press_event().connect(SigC::slot(*this, &wndLogin_glade::on_btnCancelar_key_press_event), false);
  3.    btnCancelar->signal_clicked().connect(SigC::slot(*this, &wndLogin_glade::on_btnCancelar_clicked));
wndLogin.hh
Código C++:
Ver original
  1. class wndLogin : public wndLogin_glade
  2. {
  3.     private:
  4.         bool on_btnCancelar_key_press_event(GdkEventKey *ev);
  5.         void on_btnCancelar_clicked();
  6.  };

wndLogin.cc
Código C++:
Ver original
  1. bool wndLogin::on_btnCancelar_key_press_event(GdkEventKey *ev)
  2. {
  3.     if (ev->keyval == GDK_Return || ev->keyval == GDK_KP_Enter) {
  4.  
  5.         /* Vuelvo ventana a estado original */
  6.         entUsuario->set_text("");
  7.         entPassword->set_text("");
  8.         entUsuario->grab_focus();
  9.     }
  10.     return 0;
  11. }
  12. void wndLogin::on_btnCancelar_clicked()
  13. {
  14.  
  15.          //Vuelvo ventana a estado original
  16.         entUsuario->set_text("");
  17.         entPassword->set_text("");
  18.         entUsuario->grab_focus();
  19.     return 0;
  20. }
Siempre pongo como ejemplo key_press_envet que esa señal anda bien, al compilar así como está me da.

wndLogin.cc: In member function `virtual void
wndLogin::on_btnCancelar_clicked()':
wndLogin.cc:152: error: return-statement with a value, in function declared
with a void return type
make[1]: *** [wndLogin.lo] Error 1
make[1]: Leaving directory `/root/sirel3/glade/wndLogin'
make: *** [all-recursive] Error 1