歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> gtk編程經驗兩點

gtk編程經驗兩點

日期:2017/2/27 14:14:08   编辑:更多Linux
  編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




Copyright © Linux教程網 All Rights Reserved