gtk编程经验两点

王朝other·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

编yq的时候,对于tree,treeitem控件,treeitem有sub_tree指向子树,但

没有at_tree的指针,为了得到treeitem所在的tree,我采用了自己编控件

的方法.

struct _YqTreeItem

{

GtkTreeItem tree_item;

GtkTree *attree;

gchar nodename[260];

ConfigFile *cfg;

};

这样同时也可以为treeitem添加了相关的属性.如nodename.

但这样很麻烦.我通过看其它代码找到了更好的方法.

*************

GtkWidget*

lookup_widget (GtkWidget *widget,

const gchar *widget_name)

{

GtkWidget *parent, *found_widget;

for (;;)

{

if (GTK_IS_MENU (widget))

parent = gtk_menu_get_attach_widget (GTK_MENU (widget));

else

parent = widget->parent;

if (parent == NULL)

break;

widget = parent;

}

found_widget = (GtkWidget*) gtk_object_get_data (GTK_OBJECT (widget),

widget_name);

if (!found_widget)

g_warning ("Widget not found: %s", widget_name);

return found_widget;

}

***********

这是从anjuta创建的project的src/support.c中找到的,这个函数可得到父控件.其实就是

利用了widget->parent属性,treeitem的attree就是这个.

***********

gtk_object_set_data(GTK_OBJECT(list_item),

list_item_data_key,

string);

item_data_string=gtk_object_get_data(list_item,

list_item_data_key);

************

这是从gtktutorial 1.2 sec-gtklistexample.html中找到的,有了这个函数就可以为任何控件

添加属性了.

我以前看的书和资料对gtkwidget,gtk_object这些基本控件都没有详细的说明,但这两个的用法

都很重要,我想要学好gtk还要把gtk的头文件看看,再就是多看其它软件[url=http://www.pccode.net].net" class="wordstyle"源码.

呵呵.就这么一点,可能对大多数人没有什么用.就顺便提个小技巧.

gnome terminal->setting->preference->图像,有个透明选项,用了很漂亮

胡正

2001.11.2

forlinux@263.net

http://forlinux.yeah.net

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航