文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>GTK+图形化应用程序开发学习笔记(二十)—分栏列..

GTK+图形化应用程序开发学习笔记(二十)—分栏列..

时间:2007-06-27  来源:湖光倒影

 

       下面是我们应用上面两个函数的程序例子:

#include <gtk/gtk.h>

 

int main(int argc,char *argv[ ])

{

GtkWidget *window;

GtkWidget *clist;

gchar *text1[3]={“刘备”,”男”,”23”}; /*定义列表项数据*/

gchar *text2[3]={“关羽”,”男”,”22”};

 

gtk_init(&argc,&argv);

window=gtk_window_new(GTK_WINDOW_TOPLEVEL);

gtk_signal_connect(GTK_OBJECT(window),”delete_event”,GTK_SIGNAL_FUNC(gtk_main_quit),NULL);

gtk_widget_set_size_request(window,200,150);

gtk_container_set_border_width(GTK_CONTAINER(window),10);

 

clist=gtk_clist_new(3);

gtk_clist_set_column_title(GTK_CLIST(clist),0,”姓名”);

gtk_clist_set_column_title(GTK_CLIST(clist),1,”姓别”);

gtk_clist_set_column_title(GTK_CLIST(clist),2,”年龄”);

 

gtk_clist_prepend(GTK_CLIST(clist),text1);/*将列表项数据添加到列表*/

gtk_clist_prepend(GTK_CLIST(clist),text2);

gtk_clist_set_column_justification(GTK_CLIST(clist),0,GTK_JUSTIFY_CENTER);/*设置列0的对齐方式为居中对齐*/

gtk_clist_set_column_width(GTK_CLIST(clist),0,50);/*设置列0的宽度为50*/

gtk_clist_set_shift(GTK_CLIST(clist),1,1,0,10);

 

gtk_clist_column_titles_show(GTK_CLIST(clist));

gtk_container_add(GTK_CONTAINER(window),clist);

 

gtk_widget_show(clist);

gtk_widget_show(window);

gtk_main();

}

       下面是运行后的界面:

 

       我们可以gtk_clist_get_text来得到指定单元格的数据,可以用gtk_clist_set_text来修改这些数据。

 

14.

名称::

gtk_clist_get_text

gtk_clist_set_text

功能:

查看/设置单元格中的文本

头文件:

#include <gtk/gtk.h>

函数原形:

gint gtk_clist_get_text( GtkCList *clist,gint row,gint column,gchar **text );

void gtk_clist_set_text( GtkCList *clist,gint row,gint column,const gchar *text );

参数:

clist        分栏列表构件

text         单元格文本

返回值:

      

 

 

 

 

 

 

 

 gtk_clist_set_text可以设置单元格的文本,函数可以用新文本来覆盖原有的文本,row和column用来指定单元的位置,单元格的横纵位置都是从0开始的。

gtk_clist_get_text取得指定单元格的数据,这些指针都是指向存储在构件内部的数据指针,所以不应该修改或释放。引用的数据没有必要将不感兴趣的数据全部读出。任何返回值指针(除了GtkCList构件)都可以是NULL。

 

四、信号

       与其他构件一样,GtkCList有一些信号供我们使用。GtkCList构件是从容器构件GtkContainer派生的,它有容器所具有的一些信号,还有下面这些附加信号:

select_row:选中一行时引发,该信号传递以下信息,依次是GtkCList *clist、gint row、

gint column、GtkEventButton *event、gpointer data。该信号的回调函数形势如下:

       void select_row_callback(GtkWidget *widget,gint row,gint column,GtkEventButton *event,gpointer data);

unselect_row:用户对一行取消选择,引发这个信号。传递的信息与上一个信号一样。

click_column:选中某一列时引发。传递以下信息: GtkCList *clist、gint column、gpointer data。

 

下面是程序例子:

#include <gtk/gtk.h>

 

void select_row_callback(GtkWidget *clist,gint row,gint column,GdkEventButton *event,gpointer data);

 

int main(int argc,char *argv[ ])

{

GtkWidget *window;

GtkWidget *clist;

gchar *text1[3]={“刘备”,”男”,”23”}; /*定义列表项数据*/

gchar *text2[3]={“关羽”,”男”,”22”};

 

gtk_init(&argc,&argv);

window=gtk_window_new(GTK_WINDOW_TOPLEVEL);

gtk_signal_connect(GTK_OBJECT(window),”delete_event”,GTK_SIGNAL_FUNC(gtk_main_quit),NULL);

gtk_widget_set_size_request(window,200,150);

gtk_container_set_border_width(GTK_CONTAINER(window),10);

 

clist=gtk_clist_new(3);

gtk_clist_set_column_title(GTK_CLIST(clist),0,”姓名”);

gtk_clist_set_column_title(GTK_CLIST(clist),1,”姓别”);

gtk_clist_set_column_title(GTK_CLIST(clist),2,”年龄”);

 

gtk_clist_prepend(GTK_CLIST(clist),text1);/*将列表项数据添加到列表*/

gtk_clist_prepend(GTK_CLIST(clist),text2);

 

gtk_signal_connect(GTK_OBJECT(clist),”select_row”,GTK_SIGNAL_FUNC(select_row_callback),NULL);/*捕捉select_row信号*/

 

gtk_clist_column_titles_show(GTK_CLIST(clist));

gtk_container_add(GTK_CONTAINER(window),clist);

 

gtk_widget_show(clist);

gtk_widget_show(window);

gtk_main();

}

 

void select_row_callback(GtkWidget *clist,gint row,gint column,GdkEventButton *event,gpointer data)/*设置select_row信号的回调函数*/

{

gchar *text=NULL;

gtk_clist_get_text(GTK_CLIST(clist),row,column,&text);

gprint(“%s\n”,text);

}

       程序运行后当用户点击单元格,屏幕就打印相应的内容。

 

相关阅读 更多 +
排行榜 更多 +
一剑灭天

一剑灭天

角色扮演 下载
戮仙战纪

戮仙战纪

角色扮演 下载
头号海贼王手机版

头号海贼王手机版

棋牌卡牌 下载