我以前用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])
没有成功,无法正确浏览整个对象
此外,我给对象传递了一个称为“标头”的字典来定义树的列,但根本找不到用于动态设置树的列的语法示例,只有硬编码的
发现很难找到将嵌套字典解析为树状视图的示例,尤其是对于信息列(找到了系统文件树的示例,但它没有列)