我已经使用GtkTable
制作了一个表格,并在该表格中附加了在Linux中的Widget。如何使Widget可点击
在每个小部件上显示一个视频。现在我想让所有小部件都可以点击,这样我就可以在全屏模式下显示点击的视频。
应该使用什么函数使小部件可点击。
我已经使用GtkTable
制作了一个表格,并在该表格中附加了在Linux中的Widget。如何使Widget可点击
在每个小部件上显示一个视频。现在我想让所有小部件都可以点击,这样我就可以在全屏模式下显示点击的视频。
应该使用什么函数使小部件可点击。
不知道你使用的是什么子部件。当鼠标点击(按下然后释放)时,许多小部件发出信号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 2012-02-07 13:43:24