Linux学习笔记--GTK入门【0609】

Linux学习笔记

      ----GTK入门【0609】

Written By Pingf

 

简单记录一下,下面的代码基本来自gtk的官网,加了些中文的注释便于理解,仅次而已。

例程1 简单使用

Code

 

例程2  窗体居中

 

Code

 

例程3 设置图标

 

Code

 

例程4 按钮操作

 

Code

 

一些简单的补充和说明


关于信号的连接,还是举一个例子
例如
g_signal_connect (G_OBJECT (window), "delete_event",G_CALLBACK (delete_event), NULL);
四个参数分别对应了,1发出信号的窗体,2信号或事件的类型,3回调函数的名称,4传入数据
这里在顺带说明下,与g_signal_connect相对应的回调函数的传入参数是gpointer型的,也就是一个空指针型,这就意味着我们可以传入几乎任意形态的数据,可以是字符,也可以是窗体!
而与其对应回调函数应类似如下的声明
gint delete_event( GtkWidget *widget, GdkEvent  *event, gpointer   data )
{
 ……………
}
如果是普通的信号,则省略中间的那一项!
另外前面的程序中还涉及到了另一个信号连接函数,这里也作简要的说明,当然还是举例来说
  g_signal_connect_swapped (G_OBJECT (button), "clicked", G_CALLBACK (gtk_widget_destroy), window);
可以看到几乎与前面的那种相同,但最后的那个window其实并不是传入的窗体【这样说不一定科学】
它所表示的意思是click由button发出,但到了回调函数中,回调函数则认为发出者是window,暗中进行了交换!
如果回调函数的意图是自身窗体的销毁,那么此时销毁的就是window而不是button了!
另外,由于其并不显示的传入指定的数据,其回调函数的参数中只有一项就够了
void callback_func( GtkObject *object )
{
 ………………………
}

 

 

 

 

posted @ 2009-06-09 21:20  平繁  阅读(1338)  评论(0编辑  收藏  举报