如何使Widget可点击

时间:2012-02-07 10:36:10

标签: c++ c linux gtk

我使用GtkTable创建了一个表,在该表中我已经在linux中附加了widget。

在每个小部件上显示视频。现在我想让所有小部件都可以点击,这样我就可以在全屏模式下显示点击的视频。

应该使用什么功能来使小部件可以点击。

2 个答案:

答案 0 :(得分:1)

也许widget GtkEventBox会帮助你。

答案 1 :(得分: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的第一个参数传递。 data是要作为toggle_play的第三个参数传递的其他数据,如果不需要,可以只是NULL

您可能需要将GDK_BUTTON_RELEASE_MASK添加到子窗口小部件的事件掩码中:

gtk_widget_add_events (widget, GDK_BUTTON_RELEASE_MASK);