我发现RangeEditor
在TableEditor
内无效的行为。
from traits.api import *
from traitsui.api import *
class TableItem(HasTraits):
r=Range(1,6)
class Table(HasTraits):
t=List(Instance(TableItem))
def _t_default(self):
return [TableItem()]
traits_view=View(
Item(name='t',
editor=TableEditor( columns=[
ObjectColumn(label='Number',editor=RangeEditor(mode='spinner'),
name='r',editable=True)
]
),height=250,width=250,show_label=False))
Table().configure_traits()
此程序产生的行为是范围只能在0和1之间调整。如果未指定mode='spinner'
,则表示范围是0到1之间的浮点数。当然,在上面例如,只要范围设置为0,就会吐出错误,因为特征不接受区间[1,6]以外的任何值。
这种行为非常明显是一个错误,并且随着enaml向前推进,可能无法修复。但是有一个简单的解决方法吗?
答案 0 :(得分:0)
我找到了解决方法:
from traits.api import *
from traitsui.api import *
class TableItem(HasTraits):
r=Range(1,6)
_integer_value_one=Constant(1)
_integer_value_six=Constant(6)
class Table(HasTraits):
t=List(Instance(TableItem))
def _t_default(self):
return [TableItem()]
traits_view=View(
Item(name='t',
editor=TableEditor( columns=[
ObjectColumn(label='Number',editor=RangeEditor(mode='spinner',
high_name='_integer_value_six',low_name='_integer_value_one'),
name='r',editable=True)
]
),height=250,width=250,show_label=False))
Table().configure_traits()