2012-02-07 88 views
0

我已经使用GtkTable制作了一个表格,并在该表格中附加了在Linux中的Widget。如何使Widget可点击

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

应该使用什么函数使小部件可点击。

回答

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); 
1

也许部件GtkEventBox会帮助你。

+0

这是一个不错的选择,除非子控件捕获鼠标点击(不可能知道不知道子部件的细节)。 – gcbenison 2012-02-07 13:43:24