首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查TreeView的一堆性状?

检查TreeView的一堆性状?
EN

Stack Overflow用户
提问于 2015-01-14 17:56:09
回答 2查看 136关注 0票数 2

我们试图评估这一想法的可行性:

我们在一个建模程序中有一个非常深的HasTraits对象堆栈。例如,如果我们对两种材料进行建模,我们可以使用以下方法访问这些材料上的各种属性:

代码语言:javascript
复制
Layer.Material1.Shell.index_of_refraction
Layer.Material5.Medium.index_of_refraction

我们在模拟中使用了这个代码,我们只是增加了一个特征的值。例如,我们可以运行一个模拟,如果其中一个材料的index_of_refraction在10次迭代中从1.3到1.6不等。它实际上运行得很好。

问题在于如何选择所需的特性进行仿真。用户不会知道所有这些特征变量名,所以我们想要显示程序的整个特征结构的传家宝/树视图。对于上述两个特征,它可能看起来如下:

代码语言:javascript
复制
Layer
 - Material1
    - Shell
        - index_of_refraction
 - Material2
    - Medium
        - index_of_refraction

等等..。

我知道traitsui支持TreeEditors,但是有基于这样的HasTraits堆栈检查构建TreeEditor的例子吗?从对象中获取特征堆栈最直接的方法是什么?从本质上说,这个想法可行吗?还是我应该回到画板上去?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-14 22:15:17

ValueEditor就是这样做的。您可以在这里查看它如何配置TreeEditor来完成这个任务:

tree.py

票数 2
EN

Stack Overflow用户

发布于 2015-01-14 23:17:02

这是罗伯特的解决方案的图像。

后续讨论

罗伯特,想象一下我有一个定制的TreeEditor。它似乎不让我直接使用它:

代码语言:javascript
复制
Item('myitem', editor=TreeEditor())

我得到:

代码语言:javascript
复制
traits.trait_errors.TraitError: The 'adapter' trait of an ITreeNodeAdapterBridge instance must be an implementor of, or can be adapted to implement, ITreeNode or None, but a value of [<pame.gensim.LayerSimulation object at 0x7fb623bf0830>] <class 'traits.trait_handlers.TraitListObject'> was specified.

我已经尝试过_ValueTreeValueTreevalue_tree_editorvalue_tree_editor_with_root_ValueEditorValueEditor

因此,唯一起作用的是ValueEditor,因此,即使我能够理解如何子类TraitsNode,除非我通过EditorFactory将所有东西连接起来,否则它似乎无法工作。我们想要定制的行为一直在TreeEditor中,它隐藏在_ValueEditor、ValueEditor、EditorFactory等.

这说得通吗?

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

https://stackoverflow.com/questions/27949392

复制
相关文章

相似问题

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