2012-02-07 6 views
0

나는 GtkTable을 사용하여 테이블을 만들었고 그 테이블에는 리눅스에 첨부 된 위젯이 있습니다.위젯을 클릭 할 수있게 만드는 방법

각 위젯에 비디오가 표시됩니다. 이제 모든 위젯을 클릭 할 수있게하여 클릭 한 비디오를 전체 화면 모드로 표시 할 수있게하려고합니다.

위젯을 클릭 할 수있게 만드는 데 사용해야하는 기능은 무엇입니까?

답변

1

어떤 자녀 위젯을 사용하고 있는지 알지 못합니다. 많은 위젯은 마우스가 클릭 (눌렀다가 놓기) 될 때 button-release-event 신호를 내 보냅니다. 이 같은 신호를들을 수 있습니다 :

gboolean toggle_play(GtkWidget *widget, GdkEventButton *event, gpointer data) 
{ 
    // play or pause the video of the widget 
    return TRUE; // or FALSE if you connected more than one handlers to this signal 
} 

g_signal_connect(widget, "button-release", G_CALLBACK (toggle_play), data); 

widget가 비디오를 재생하는 자녀 위젯입니다

, 그것은 toggle_play의 첫 번째 인수로 전달됩니다. datatoggle_play의 세 번째 인수로 전달되는 추가 데이터로, 필요하지 않은 경우 간단히 NULL이 될 수 있습니다.

당신은 자식 위젯의 이벤트 마스크에 GDK_BUTTON_RELEASE_MASK을 추가해야합니다 : 자식 위젯 (자식 위젯의 세부 사항을 알지 못하고 아는 것은 불가능) 마우스 클릭을 캡처하지 않는 좋은 선택입니다

gtk_widget_add_events (widget, GDK_BUTTON_RELEASE_MASK); 
관련 문제