GTK+基本组件解说

GTK+基本组件解说


常见信号

  1. key_press_event:在按键时发生
  2. foucs:在获得焦点时发生
  3. delete_event:在窗口关闭时发生
  4. destroy:销毁窗口时发生
  5. activate:选中菜单项时发生
  6. changed:切换菜单项时发生
  7. text-popped:状态栏消息弹出时发生
  8. button_press_event:几乎每一个继承自GtkWidget的控件都有此信号,其在鼠标按下时发生

容器类型

  1. 只能容纳一个控件的容器:窗口GtkWindow、框架GtkFrame、视区GtkViewPort、按钮GtkButton
  2. 同时容纳多个控件的容器:盒状容器GtkBox、格状容器GtkTable、按钮盒GtkButtonBox、分割面板GtkPanel、固定布局GtkFixed、工具栏GtkToolbar

盒状容器又分:纵向盒状容器GtkVBox、横向盒状容器GtkHBox


容器设置项

gtk_container_add(GTK_CONTAINER(容器), 控件)

将某控件添加到目标容器中

gtk_container_set_border_width(GTK_CONTAINER(容器), 宽度)

设定目标容器边框的宽度


元素的显示

gtk_widget_show(容器或控件):显示单个容器或控件

gtk_widget_show_all(容器):显示目标容器里的所有元素


图像控件

直接从图像文件创建 gtk_image_new_from_file,只需唯一的一个参数:所调用图像的文件名,返回结果是该图像控件的指针

示例:image = gtk_image_new_from_file("ruchee.jpg");


g_signal_connect格式

此信号绑定函数有四个参数

  1. 连接对象:发出信号的控件的指针,需要用G_OBJECT宏转换
  2. 信号名称:指定连接对象上发生的信号名称,需要使用双引号引起来
  3. 回调函数:信号发生时调用的函数,需要用G_CALLBACK宏转换,只需写函数的名称
  4. 传递参数:类型为gpointer,只能传递一个参数,没有则为NULL,多个则需要预先定义为一个结构,然后将结构作为一个整体来传递

回调函数格式

用户传递的参数必须为gpointer类型

  1. 对象指针:这是必须的第一个参数,指代使用此回调函数的控件指针
  2. 事件类型:这是可选的第二个参数,指代调用此回调函数时发生的事件类型
  3. 用户参数:用户传递的参数,可以有多个,必须为gpointer类型

回调函数示例:

gboolean
On_Delete_Event(GtkWidget * widget, GdkEvent * event, gpointer data){
	gtk_main_quit();
	return FALSE;
}

调用示例:

g_signal_connect(G_OBJECT(window), "delete_event",
		G_CALLBACK(On_Delete_Event), NULL);

回调函数返回值为TRUE表示不引发destroy信号,以使程序继续运行
回调函数返回值为FALSE表示要求引发destroy信号,终止程序的执行

一个控件可以有多个回调函数,根据它们的连接次序依次执行

g_signal_connect_swappedg_signal_connect格式完全一样,不同之处在于:
g_signal_connect_swapped一般放在g_signal_connect之后,表示执行完前一回调函数后继续执行此回调函数 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值