GTK + 3에서 마우스 이벤트에 응답하기 위해 drawing_area를 얻으려면 어떻게해야합니까?GTK + 3에서 마우스 이벤트에 응답 할 수있는 드로어 영역을 얻는 방법은 무엇입니까?
g_signal_connect(drawing_area, "button-press-event", G_CALLBACK(clicked), NULL);
: 나는 마우스 클릭 신호로
drawing_area 연결 다음
GtkWidget *drawing_area;
:
는 주() 함수에서 내 drawing_area 선언
함수에 의해 정의 '를 클릭 "
static gboolean clicked(GtkWidget *widget, GdkEventButton *event, gpointer user_data)
printf("Clicked! \n");
return TRUE;
}
프로그램이 실행되고 drawing_area를 표시하지만 나는 그것을 클릭하면, 아무 대답은 아무 일도 발생하지 않습니다! 왜 이런 일이 일어나는 걸까요?
작동하지만 매우 그 내가 가지고 있기 때문에 잘 내 드로잉 영역은 GUI 안에 내장되어 있으므로 GUI 창에서 클릭하면 (도면 영역 외부에 있더라도) 클릭 이벤트가 처리됩니다. 그리기 영역을 클릭하고 다른 곳을 클릭 할 때만 마우스 이벤트를 처리하기를 원합니다. – PintoDoido
좋아, 편집 –
덕분에, 지금 작동합니다. ** gtk_widget_add_events (drawing_area, GDK_BUTTON_PRESS_MASK)를 추가했습니다. ** – PintoDoido