ツリー2014年9月7日 | |
![]() ファイル内容ツリーを作ります。基本はリストと同じです。gtk.ListStore() の代りに gtk.TreeStore() を使います。 gtk.TreeView の作成。 tree = gtk.TreeView() ツリーの作成。
store = gtk.TreeStore(
gobject.TYPE_STRING,
gobject.TYPE_UINT,
gobject.TYPE_BOOLEAN)
tree.set_model(store)
列の ID は次のように定義しています。 COLUMN_ITEM = 0 COLUMN_NUM = 1 COLUMN_VISIBLE = 2 ツリーの枝で "Num" 列を表示させないようにするために、COLUMN_VISIBLE をブーリアンとして定義しています。 列の追加。
renderer = gtk.CellRendererText()
renderer.set_data("column", COLUMN_ITEM)
column = gtk.TreeViewColumn(
"Item", renderer,
text=COLUMN_ITEM)
tree.append_column(column)
renderer = gtk.CellRendererText()
renderer.set_data("column", COLUMN_NUM)
renderer.set_property("editable", True)
column = gtk.TreeViewColumn(
"Num", renderer,
text=COLUMN_NUM,
visible=COLUMN_VISIBLE)
tree.append_column(column)
表示の切り替えを指定できるように、"Num" 列で "visible" に COLUMN_VISIBLE を指定しています。 項目の追加。
iter = store.append(None)
store.set(iter,
COLUMN_ITEM, "fruits",
COLUMN_NUM, 0,
COLUMN_VISIBLE, False)
citer = store.append(iter)
store.set(citer,
COLUMN_ITEM, "apple",
COLUMN_NUM, 1,
COLUMN_VISIBLE, True)
citer = store.append(iter)
store.set(citer,
COLUMN_ITEM, "lemon",
COLUMN_NUM, 2,
COLUMN_VISIBLE, True)
iter = store.append(None)
store.set(iter,
COLUMN_ITEM, "animals",
COLUMN_NUM, 0,
COLUMN_VISIBLE, False)
citer = store.append(iter)
store.set(citer,
COLUMN_ITEM, "cat",
COLUMN_NUM, 3,
COLUMN_VISIBLE, True)
citer = store.append(iter)
store.set(citer,
COLUMN_ITEM, "penguin",
COLUMN_NUM, 2,
COLUMN_VISIBLE, True)
append() では、引数に親の gtk.TreeIter を指定します。親がない場合は None を指定します。たとえば、"fruits" は親を持たないので、append() で引数に None を指定しています。また、"fruits" は枝なので、set() で COLUMN_VISIBLE に False を指定して、"Num" の列を表示しないようにしています。 | |
| PENGUINITIS | |