2016-06-20 9 views
0

Gtk.TreeViewをテキスト形式にエクスポートしようとしています。これは、ListStoreモデルを使用してTreeViewにデータを表示するアプリケーションのテキスト関数へのエクスポートに似ています。Gtk.TreeViewをテキスト形式に変換する

Gtk.TreeViewを効率的に解析して簡単なテキスト形式で表現する方法のサンプルコードを手助けできますか?

+0

[GtkTreeModel関数](https://developer.gnome.org/gtk2/stable/GtkTreeModel.html#gtk-tree-model-get-value)のようなものを使用する必要があると思います。 – oldtechaa

+0

@oldtechaaご回答いただきありがとうございます。ただし、TreeModelのget_value関数を呼び出すパラメータの1つはTreeIterです。 TreeModelをTreeModelにループさせる方法がわかりません - public abstract void get_value(TreeIter iter、int column、Value value) –

+0

[valadocのサンプルコードを参照](http://valadoc.org/#! api = gtk + -3.0/Gtk.TreeStore)。 –

答えて

1

出発点はthis code from valadocを考えると:

public static int main (string[] args) { 
    // Create a ListStore: 
    Gtk.ListStore list_store = new Gtk.ListStore (2, typeof (string), typeof (int)); 
    Gtk.TreeIter iter; 

    // Insert data: (0: State, 1: Cities) 
    list_store.append (out iter); 
    list_store.set (iter, 0, "Burgenland", 1, 13); 
    list_store.append (out iter); 
    list_store.set (iter, 0, "Carinthia", 1, 17); 
    list_store.append (out iter); 
    list_store.set (iter, 0, "Lower Austria", 1, 75); 
    list_store.append (out iter); 
    list_store.set (iter, 0, "Upper Austria", 1, 32); 
    list_store.append (out iter); 
    list_store.set (iter, 0, "Salzburg", 1, 10); 
    list_store.append (out iter); 
    list_store.set (iter, 0, "Styria", 1, 34); 
    list_store.append (out iter); 
    list_store.set (iter, 0, "Tyrol", 1, 11); 
    list_store.append (out iter); 
    list_store.set (iter, 0, "Vorarlberg", 1, 5); 
    list_store.append (out iter); 
    list_store.set (iter, 0, "Vienna", 1, 1); 

    // Output: 
    // ``Entry: Burgenland  13`` 
    // ``Entry: Carinthia  17`` 
    // ``Entry: Lower Austria 75`` 
    // ``Entry: Upper Austria 32`` 
    // ``Entry: Salzburg  10`` 
    // ``Entry: Styria   34`` 
    // ``Entry: Tyrol   11`` 
    // ``Entry: Vorarlberg  5`` 
    // ``Entry: Vienna   1`` 
    for (bool next = list_store.get_iter_first (out iter); next; next = list_store.iter_next (ref iter)) { 
     Value val1, val2; 
     list_store.get_value (iter, 0, out val1); 
     list_store.get_value (iter, 1, out val2); 
     stdout.printf ("Entry: %s\t%d\n", (string) val1, (int) val2); 
    } 
    return 0; 
} 

またtop level documentation for the Gtk.TreeModel interfaceをお読みください。

関連する問題