gpt4 book ai didi

python - PyGtk 如何使用过滤器更改 TreeView 数据?

转载 作者:太空狗 更新时间:2023-10-30 01:23:21 25 4
gpt4 key购买 nike

我想做的是动态更改(通过过滤器)字符串列表。在我的例子中,它是路径存储在 gtk.TreeStore 中的文件列表。

预期效果示例(例如 Sublime Text 2 文件搜索 Ctrl+P):

数据:

文件列表( TreeView ):

  • '/家/用户/'
    • '.bashrc',
    • '测试.txt',
  • ...

操作:在过滤器字段(输入小部件)中,用户开始输入。在第一个字符之后,例如。 't' 列表应该像这样更新:

结果:

文件列表( TreeView ):

  • '测试.txt',
  • ...所有包含't'的字符串(匹配函数现在不重要)

我已经拥有的:

self.search_entry = gtk.Entry()

self.tree_store = gtk.TreeStore(gobject.TYPE_STRING, gobject.TYPE_BOOLEAN)

for node, files in self.files_list:
parent = self.tree_store.append(None, [node, True])
for f in files:
self.tree_store.append(parent, [f, True])

tree_filter = self.tree_store.filter_new()
self.treeview = gtk.TreeView(tree_filter)

self.renderer0 = gtk.CellRendererText()
self.treeview.insert_column_with_attributes(-1, "Filename", self.renderer0, text=0)
self.treeview.set_search_column(0)
self.treeview.set_search_entry(self.search_entry)
self.treeview.expand_all()

我知道 TreeView 有一个方法 set_search_equal_func,我可以在其中将默认匹配函数更改为我自己的。问题是如何在过滤器表单字段中输入时更改列表?

最佳答案

您必须阅读 gtk.TreeModelFilter . Here你可以阅读一个非常有用的例子。它是 C#,但很容易将它“翻译”成 python:

http://www.mono-project.com/GtkSharp_TreeView_Tutorial#Filtering_Data

关于python - PyGtk 如何使用过滤器更改 TreeView 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14068496/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com