Как сделать виджет кликабельным - PullRequest
0 голосов
/ 07 февраля 2012

Я создал таблицу, используя GtkTable, и в этой таблице я прикрепил виджет в Linux.

На каждом виджете отображается видео.Теперь я хочу сделать все виджеты доступными для кликов, чтобы иметь возможность отображать кликнутое видео в полноэкранном режиме.

Какая функция должна использоваться для создания виджета с возможностью нажатия.

Ответы [ 2 ]

1 голос
/ 08 февраля 2012

Понятия не имею, какой дочерний виджет вы используете. Многие виджеты испускают сигнал 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);
1 голос
/ 07 февраля 2012

Может быть, виджет GtkEventBox поможет вам.

...