如何更改枚举可能的值
How to change Enum possible values
以下代码不起作用:
from traits.api import HasTraits, Enum
class A(HasTraits):
enum = Enum(1,2,3)
class B(A):
def __init__(self):
self.trait('enum').default_value = ['one','two','three']
b = B()
b.configure_traits()
下拉列表中没有['one','two','three']的选项,还是[1,2,3]。有没有办法在声明一次后以任何方式修改 Enum 内容?
如果您想在从 A
继承 B
时更改 enum
特征的值,您可以像这样重新定义特征:
class B(A):
enum = Enum(['one', 'two', 'three'])
如果您希望能够动态更改 Enum
中的值,Enum
构造函数采用一个 values
参数,您可以传递另一个特征的名称一个类似于 List
定义值的特征的序列,如下所示,然后以您想要的任何方式更改该列表或整个序列中的值:
from traits.api import Enum, HasTraits, List
class A(HasTraits):
values = List([1, 2, 3])
enum = Enum(values='values')
a = A()
a.configure_traits()
以下代码不起作用:
from traits.api import HasTraits, Enum
class A(HasTraits):
enum = Enum(1,2,3)
class B(A):
def __init__(self):
self.trait('enum').default_value = ['one','two','three']
b = B()
b.configure_traits()
下拉列表中没有['one','two','three']的选项,还是[1,2,3]。有没有办法在声明一次后以任何方式修改 Enum 内容?
如果您想在从 A
继承 B
时更改 enum
特征的值,您可以像这样重新定义特征:
class B(A):
enum = Enum(['one', 'two', 'three'])
如果您希望能够动态更改 Enum
中的值,Enum
构造函数采用一个 values
参数,您可以传递另一个特征的名称一个类似于 List
定义值的特征的序列,如下所示,然后以您想要的任何方式更改该列表或整个序列中的值:
from traits.api import Enum, HasTraits, List
class A(HasTraits):
values = List([1, 2, 3])
enum = Enum(values='values')
a = A()
a.configure_traits()