打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
GTK:事件盒
事件盒构件(GtkEventBox)在屏幕上什么也不画,也不能单独对事件做出响应。它的功能是为一些没有X窗口的构件(如label)提供X窗口。使其可以接收信号。它另外一个作用是剪裁这些构件。它的功能有点像Dreamweaver里的焦点。
使一个没有X窗体的构件响应信号分为3步。
一、创建事件盒构件。我们用gtk_event_box_new来创建事件盒构件。
1.
名称::
gtk_event_box_new
功能:
创建事件盒构件
头文件:
#include <gtk/gtk.h>
函数原形:
GtkWidget *gtk_event_box_new( void );
参数:
返回值:
新的事件盒构件
2.
名称::
gtk_container_set_border_width
功能:
设置容器边框的宽度
头文件:
#include <gtk/gtk.h>
函数原形:
void gtk_container_set_border_width( GtkContainer *container
guint border_width);
参数:
GtkContainer *container 容器指针
guint border_width 边框宽度(0-65535像素)
返回值:
二、将要响应事件的构件加入事件盒构件。
gtk_container_add( GTK_CONTAINER(event_box), child_widget );
三、为事件盒构件绑定一个事件响应。
gtk_signal_connect (GTK_OBJECT(event_box), "button_press_event", GTK_SIGNAL_FUNC (gtk_main_quit), NULL);
下面就是应用事件盒构件的例子。
#include <gtk/gtk.h>
int main(int argc,char *argv[ ])
{
GtkWidget *window;
GtkWidget *event_box;
GtkWidget *label;
gtk_init(&argc,&argv);
window=gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_signal_connect(GTK_OBJECT(window),”destroy”,GTK_SIGNAL_FUNC(gtk_main_quit),NULL);
gtk_container_set_border_width(GTK_CONTAINER(window),10);
event_box=gtk_event_box_new();/*创建事件盒构件*/
gtk_container_add(GTK_CONTAINER(window),event_box);
gtk_widget_show(event_box);
label_gtk_label_new(“Click here to quit”);
gtk_container_add(GTK_CONTAINER(event_box),label);/*将label构件加入事件盒构件*/
gtk_widget_show(label);
gtk_signal_connect(GTK_OBJECT(event_box),”button_press_event”,GTK_SIGNAL_FUNC(gtk_main_quit),NULL);/* 为事件盒构件绑定一个事件响应*/
gtk_widget_show(window);
gtk_main();
}
程序运行后得到如下窗体,当用户点击label程序退出。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存
猜你喜欢
类似文章
枇杷
小区贴梗海棠花(5)
揭秘!140个老中医独门经验方,轻松养生不求人!
【思维突破】XES秘籍—高中物理思维突破小蓝本(1级-4级全套),爆款资源及时保存!
石榴花(1)
女生的生理性喜欢,很直接
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服