如何使用PyGTK在TreeView或TreeStore中输出嵌套字典

时间:2019-01-09 17:55:58

标签: python python-3.x treeview pygtk defaultdict

我以前用Tkinter构建UI,但是发现在使用Mac / Linux时存在严重问题(仅在Windows上正常工作) 所以我试图切换到GTK。 在我的用户界面中,我需要输出带有树状视图的嵌套默认字典,类似于以下内容(取自我的Tkinter用户界面): https://cdn.pbrd.co/images/HVG3Zci.png

我尝试构建一个递归函数,该函数将对象分解直到达到最终类型(str或元组)

def build_tree(self,tree,object):
    for item in object.keys():
        if isinstance(object[item],tuple):
            next_tree = self.store.append(tree, [item])
            continue
        if isinstance(object[item],list):
            next_tree = self.store.append(tree, [item])
            self.build_tree(next_tree, dict([(i, x) for i, x in enumerate(object[item])]))

        if not isinstance(object[item],str):
            next_tree = self.store.append(tree, [item])
            self.build_tree(next_tree,object[item])

没有成功,无法正确浏览整个对象

此外,我给对象传递了一个称为“标头”的字典来定义树的列,但根本找不到用于动态设置树的列的语法示例,只有硬编码的

发现很难找到将嵌套字典解析为树状视图的示例,尤其是对于信息列(找到了系统文件树的示例,但它没有列)

0 个答案:

没有答案