首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以在gtk中向现有的树模型添加列吗?

我可以在gtk中向现有的树模型添加列吗?
EN

Stack Overflow用户
提问于 2012-01-20 01:24:29
回答 3查看 1.8K关注 0票数 5

我有一个树形视图,它是由一个树形模型填充的。

我想在树视图中添加一个列。可以从单独的树模型中提取该列的数据吗?或者我可以在运行时将列附加到现有的树模型中吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-01-20 03:15:03

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

代码语言:javascript
复制
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()
票数 4
EN

Stack Overflow用户

发布于 2012-01-20 02:23:54

gtk.TreeView对象中有一个append_column方法,所以可以通过编程方式将列添加到gtk.TreeView中。

但是,我不知道有什么方法可以将新列添加到现有模型中,或者为同一个gtk.TreeView使用多个模型。无论如何,我猜你可以创建一个带有额外列的新模型,复制前一个模型的内容,并更新树视图以使用新模型。

票数 0
EN

Stack Overflow用户

发布于 2015-08-28 02:21:15

回答标题中的问题:不,您不能在创建GtkTreeModel之后向其添加列。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8930460

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档