나는 GtkTable
을 사용하여 테이블을 만들었고 그 테이블에는 리눅스에 첨부 된 위젯이 있습니다.위젯을 클릭 할 수있게 만드는 방법
각 위젯에 비디오가 표시됩니다. 이제 모든 위젯을 클릭 할 수있게하여 클릭 한 비디오를 전체 화면 모드로 표시 할 수있게하려고합니다.
위젯을 클릭 할 수있게 만드는 데 사용해야하는 기능은 무엇입니까?
나는 GtkTable
을 사용하여 테이블을 만들었고 그 테이블에는 리눅스에 첨부 된 위젯이 있습니다.위젯을 클릭 할 수있게 만드는 방법
각 위젯에 비디오가 표시됩니다. 이제 모든 위젯을 클릭 할 수있게하여 클릭 한 비디오를 전체 화면 모드로 표시 할 수있게하려고합니다.
위젯을 클릭 할 수있게 만드는 데 사용해야하는 기능은 무엇입니까?
어떤 자녀 위젯을 사용하고 있는지 알지 못합니다. 많은 위젯은 마우스가 클릭 (눌렀다가 놓기) 될 때 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
의 첫 번째 인수로 전달됩니다.
data
은
toggle_play
의 세 번째 인수로 전달되는 추가 데이터로, 필요하지 않은 경우 간단히
NULL
이 될 수 있습니다.
당신은 자식 위젯의 이벤트 마스크에 GDK_BUTTON_RELEASE_MASK
을 추가해야합니다 : 자식 위젯 (자식 위젯의 세부 사항을 알지 못하고 아는 것은 불가능) 마우스 클릭을 캡처하지 않는 좋은 선택입니다
gtk_widget_add_events (widget, GDK_BUTTON_RELEASE_MASK);
위젯 GtkEventBox
가 도움이 될 것입니다.
합니다. – gcbenison