2013-04-25 2 views
2

내가 window.signal_delete_event에 신호를 연결하고자하지만, 다음과 같은 오류 메시지와 함께 실패에 호출연결은 Gtk에 :: 창 signal_delete_event

  • 없는 경기 '(하는 sigC :: bound_mem_functor0) (_GdkEventAny * CONST &) '함수 반환하는 값
  • 복귀 문 OpticalInput'무효 '[-fpermissive]
  • 무효 값이되어야한다 무시하지

즉, 코드 라인은 오류를 일으키는 :

void GUIWindow::onExitClicked() 
{ 
    *state = false; 
    Gtk::Main::quit(); 
} 

이 문제를 해결하는 방법에 어떤 아이디어 :

window.signal_delete_event().connect(sigc::mem_fun(this,&GUIWindow::onExitClicked)); 

뾰족한 멤버 함수이 하나?

답변

4

귀하의 방법은 신호의 서명과 일치해야합니다. signal_delete_event()에 대한 gtkmm 문서에서는 다음과 같은 프로토 타입이 제공됩니다 : 당신의 이름을 사용하여

bool on_my_delete_event(GdkEventAny* event) 

는, 메소드가 정의되어야합니다 다음과 같이

bool GUIWindow::onExitClicked(GdkEventAny* event) { ... } 

반환 값은 표시하는 데 사용됩니다 여부 당신 이벤트를 완전히 처리했습니다. true를 반환하면이 이벤트에 대한 다른 핸들러에서이 이벤트를 볼 수 없습니다.