当前位置:Linux教程 - Linux综合 - gtk编程经验两点

gtk编程经验两点

  编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的头文件看看,再就是多看其它软件的源码. 呵呵.就这么一点,可能对大多数人没有什么用.就顺便提个小技巧. gnome terminal->setting->preference->图像,有个透明选项,用了很漂亮 胡正 2001.11.2 [email protected] http://forlinux.yeah.net

(出处:http://www.sheup.com)