在PySide tableview中存储一个'指针'到JSON树的一部分

时间:2013-02-03 07:01:00

标签: python json pyside

我有一些由重度嵌套的JSON表示的数据,我用Python解析并填充UI(特别是PySide)。

我的UI基本上是两个窗格,左边是带有扁平树的表视图,右边是树视图。单击表视图中的单元格应重新填充右侧的树视图。

我遇到的问题是,如何将表视图模型中的指针设置为JSON数据中的相应条目? (即如何在我的单位列表中输入一个条目以指向我的JSON数据中的正确位置?)

我想过使用Win32中旧MFC时代的技巧,其中你为UI设置了任意项目数据,但是查看Qt表视图类,他们的项目数据函数似乎做了不同的事情。

有什么想法?

感谢您的时间......

2 个答案:

答案 0 :(得分:0)

将导航序列化为值作为表示形式,并在您要访问该项目时对其进行解析。 E.g:

foo.1->bar -> data['foo'][1]['bar']

答案 1 :(得分:0)

由于您的数据是跨视图共享的,因此使用单个模型会更有意义。使您的主模型成为树模型。然后,您可以编写代理模型(从QAbstractProxyModel继承),使您的QTableView的树模型变得扁平。您现在可以轻松获取主树模型的“指针”。

如果您只想显示树模型的部分内容,可以使用QTreeView的{​​{3}}。