python - 检查 TreeView 的特征堆栈?

标签 python enthought traits traitsui

我们正在尝试评估这个想法的可行性:

我们在建模程序中有相当深的 HasTraits 对象堆栈。例如,如果我们正在对两种 Material 进行建模,我们可以通过以下方式访问它们的各种属性:

Layer.Material1.Shell.index_of_refraction
Layer.Material5.Medium.index_of_refraction

我们使用此代码进行模拟,其中我们仅增加特征的值。例如,我们可以运行一个模拟,其中一种 Material 的折射率在 10 次迭代中从 1.3 变化到 1.6。它实际上运行得很好。

问题在于选择模拟所需的特征。用户不会知道所有这些特征变量名称,因此我们希望呈现程序的整个特征结构的层次/ TreeView 。对于上述两个特征,它可能看起来像:

Layer
 - Material1
    - Shell
        - index_of_refraction
 - Material2
    - Medium
        - index_of_refraction

等等...

我知道traitsui支持TreeEditors,但是有没有像这样基于HasTraits堆栈的检查构建TreeEditor的示例?从对象获取特征堆栈的最直接方法是什么?本质上,这个想法是否可行,或者我应该重新开始?

谢谢

最佳答案

ValueEditor做这个。您可以在此处查看它如何配置 TreeEditor 来执行此操作:

https://github.com/enthought/traitsui/blob/master/traitsui/value_tree.py

关于python - 检查 TreeView 的特征堆栈?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27949392/

相关文章:

python - 使用异常来控制代码流

python - Enthought Canopy Python 和 OpenCV

rust - 为什么 impl trait 不能用于返回多个/条件类型?

具有 const 类型或简单类型参数的方法的 C++ 模板函数

python - 使用多线程实现 CPU 效率最大化

python - 如何获取python导入树

python - iter() 对列表做了什么?

python - 检查同步特征 : Traits/TraitsUI

enthought - TabularAdapter 自定义/通知?

iterator - 是否有提供 `iter()` 的特征?