2017-05-19 14 views
1
여기

의 신호 코드가, 내가 GTK 윈도우 GtkWidget *windowdestroy 신호에 my_pointer를 전달하려는입니다 파괴에 데이터를 전달할 수 없습니다!는 GTK2

my_pointerfocus-in-event, key-press-event 등과 같이 전달하면 다른 신호도 정상적으로 작동하지만 destroy 신호에는 어떤 문제가 있습니까? 그리고 1은 전혀 포인터가 아닙니다.

답변

2

destroy signaldestroy-event 신호와 다릅니다.

destroy 신호의 콜백의 예상 함수 프로토 타입은 다음

gboolean 
user_function (GtkWidget *widget, 
       GdkEvent *event, 
       gpointer user_data) 

변경 반환 형식과 두 번째 매개 변수를 제거 : 함수는 현재 destroy-event 신호의 콜백과 일치

void 
user_function (GtkWidget *object, 
       gpointer user_data) 

반면

귀하의 기능 중.

static void destroy(GtkWidget *widget, gpointer data) { 
    printf("gpointer: %ld\n", data); 
} 
+0

나는 디버깅 후 자신이'destroy' 신호의 콜백에'GdkEvent'없이 2 개의 인수 만 있다는 것을 알았습니다. 도움을 주셔서 감사합니다! – Learning