2014-02-19 33 views
0

在GtkTreeView中間串快速搜索,有一個內置的搜索功能:啓用GtkTreeView

enter image description here

然而,在默認情況下它只能從字符串開始處匹配。所以「父母」會匹配,但「沒有0」不會。

有沒有辦法改變默認行爲,以便搜索匹配中間字符串呢?

回答

1

這是搜索功能:

gboolean 
mid_search_func (GtkTreeModel *model, gint column, 
       const gchar *key, GtkTreeIter *iter, 
       gpointer search_data) 
{ 
    gchar *iter_string = NULL; 
    gtk_tree_model_get (model, iter, column, &iter_string, -1); 
    return ! g_strrstr (iter_string, key) != NULL; 
} 

而在你的TreeView:

gtk_tree_view_set_search_equal_func(GTK_TREE_VIEW(tree_view), 
(GtkTreeViewSearchEqualFunc) mid_search_func, 
gtk_tree_view_get_model(GTK_TREE_VIEW(tree_view), NULL); 

這g_strrstr是大小寫敏感的,所以用g_utf8_strdown在小寫改造一切,比較,如果你想要這個行爲。