2011-03-12 99 views
0

我可以在GtkListStore中存儲未指定的類型嗎?例如,我想存儲在一個字段中 - int類型的字段和GdkColor類型的字段?我可以在GtkListStore中存儲未指定的類型嗎?

+1

這個例子中,你可以請你澄清你的問題。 – Algorithmist 2011-03-12 07:56:25

+0

我已經有3個字段的GtkListStore。第一個字段是雙重類型的「leftRange」。第二個字段也是雙精度類型的「rightRange」。但是3場是「屬性」。我想這個字段可以定義爲未指定的類型,可以是int類型,GdkColor類型等。你理解我,對不起我的壞英語 – 2011-03-12 08:09:28

回答

0

我問,這將是設置字段

#include <gtk/gtk.h> 

int main (int argc, char * argv[]) 
{ 
    gtk_init(&argc, &argv); 

    GtkListStore* store = gtk_list_store_new(1, G_TYPE_VALUE); 
    GValue v = { 0 }; 
    GtkTreeIter iter; 
    gtk_list_store_append(store, &iter); 
    g_value_init(&v, G_TYPE_INT); 
    g_value_set_int(&v, 10); 
    GValue gv = { 0 }; 
    g_value_init(&gv, G_TYPE_VALUE); 
    g_value_set_boxed(&gv, &v); 
    gtk_list_store_set_value(store, &iter, 0, &gv); 

    GValue gv2 = { 0 }; 
    gtk_tree_model_get_value((GtkTreeModel*)store, &iter, 0, &gv2); 
    printf("gv2 holds %s\n", g_type_name(G_VALUE_TYPE(&gv2))); 
    GValue * gv3 = (GValue*)g_value_get_boxed(&gv2); 
    printf("gv3 holds %s\n", g_type_name(G_VALUE_TYPE(gv3))); 

    int int_v = g_value_get_int(gv3); 
    printf("int_v = %d\n", int_v); 

    return 0; 
} 

的G_TYPE_VALUE類型我都遵循從https://gist.github.com/867930

相關問題