可以保留映射特征中的阴影特征

时间:2016-07-21 21:39:52

标签: traits enthought

让我们考虑一下代码

from traits.api import HasTraits, Int, Trait, File
from traitsui.api import InstanceEditor, View, Item, HGroup, OKCancelButtons

class A(HasTraits):
    value = Int
    nature = 'Integer'

class B(HasTraits):
    value = File
    nature = 'Filename'

class Test(HasTraits):
    a = A()
    b = B()
    c = Trait(a.nature,{x.nature : x for x in [a,b]})
    view = View(
                HGroup(
                    Item('c',show_label=False),
                    Item('c_',show_label=False,
                            style='simple',
                            editor=InstanceEditor(label='...',kind='modal'))),
                buttons=OKCancelButtons           
                )

t = Test()

t.configure_traits(filename='/Volumes/FAT/Python/Tests/abc.dat',kind='modal')

运行时,对话框建议在整数或文件名类型的参数之间进行选择,标有“...”的按钮允许在级联对话框中输入足够的值。不幸的是,编辑的int或文件名的值(对应于级联对话框和'阴影'特征c_)不会被保存,尽管选择'整数'或'文件名'是。

添加

    def __init__(self):
        self.trait('c_').transient = False

不会改变任何东西(虽然t.trait('c _')。transient在没有前面代码的情况下返回True。)

有没有办法实现影子特质的持久性?

0 个答案:

没有答案