编程语言
首页 > 编程语言> > python – 我可以在gtk中的现有树模型中添加一列吗?

python – 我可以在gtk中的现有树模型中添加一列吗?

作者:互联网

我有一个树形图,它是从树模型中填充的.

我想在树视图中添加一个列.是否可以从单独的树模型中为该列绘制数据,还是可以在运行时将列附加到现有的树模型中?

解决方法:

您可以根据需要在树视图中追加任意数量的列,而不受模型列的限制.如果模型中不存在您需要的数据,则可以为列设置回调:

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()

标签:python,gtk,pygtk,gtktreeview
来源: https://codeday.me/bug/20190630/1335498.html