5

ツリーモデルから作成されたツリービューがあります。

ツリービューに列を追加したいと思います。別のツリーモデルからその列のデータを描画することは可能ですか、または実行時に既存のツリーモデルに列を追加できますか?

4

3 に答える 3

4

モデルの列の制限なしに、必要な数の列をツリービューに追加できます。必要なデータがモデルに存在しない場合は、列のコールバックを設定できます。

import gtk


def inIta(col, cell, model, iter, mymodel):
    s = model.get_string_from_iter(iter)
    niter = mymodel.get_iter_from_string(s)
    obj = mymodel.get_value(niter, 0)
    cell.set_property('text', obj)


model = gtk.ListStore(str)
model2 = gtk.ListStore(str)
view = gtk.TreeView(model)
rend1 = gtk.CellRendererText()
col1 = gtk.TreeViewColumn('hello', rend1, text=0)
view.append_column(col1)
rend2 = gtk.CellRendererText()
col2 = gtk.TreeViewColumn('ciao', rend2)
col2.set_cell_data_func(rend2, inIta, model2)
view.append_column(col2)

model.append(['hello world'])
model2.append(['ciao mondo'])

win = gtk.Window()
win.connect('delete_event', gtk.main_quit)
win.add(view)
win.show_all()
gtk.main()
于 2012-01-19T19:15:03.120 に答える
0

gtk.TreeViewオブジェクトにはメソッドappend_columnがあるので、そうです、プログラムで列をに追加できますgtk.TreeView

ただし、既存のモデルに新しい列を追加したり、同じモデルに複数のモデルを使用したりする方法はわかりませんgtk.TreeView。とにかく、追加の列を持つ新しいモデルを作成し、前のモデルの内容をコピーして、新しいモデルを使用するようにツリービューを更新できると思います。

于 2012-01-19T18:23:53.750 に答える
0

タイトルの質問に答えるには: いいえ、作成後に GtkTreeModel に列を追加することはできません。

于 2015-08-27T18:21:15.470 に答える