更改ArrayViewEditor中的数组特征值时出现python错误

更改ArrayViewEditor中的数组特征值时出现python错误,python,traitsui,Python,Traitsui,我是一名新手,使用TraitsUI模块来可视化数组特征。为了更新数组的值,我对演示代码做了一点修改,现在收到了消息 “索引器错误:标量变量的索引无效” 顺便说一句,我在ArrayEditor中使用了相同的方法,它很有效 这个错误的原因是什么 是否有正确的方法在ArrayViewEditor中启用数组值的更新 以下是操作规程: from numpy.random import random from traits.api import HasTraits, Array,Button from tr

我是一名新手,使用TraitsUI模块来可视化数组特征。为了更新数组的值,我对演示代码做了一点修改,现在收到了消息 “索引器错误:标量变量的索引无效”

顺便说一句,我在ArrayEditor中使用了相同的方法,它很有效

这个错误的原因是什么

是否有正确的方法在ArrayViewEditor中启用数组值的更新

以下是操作规程:

from numpy.random import random
from traits.api import HasTraits, Array,Button
from traitsui.api import View, Item
from traitsui.ui_editors.array_view_editor import ArrayViewEditor
import numpy as np

#-- ShowArray demo class -------------------------------------------------------

class ShowArray(HasTraits):

data = Array(editor = ArrayViewEditor(titles = [ 'x', 'y', 'z' ],
                                       format = '%.4f',
                                       show_index = False
                                       # Font fails with wx in OSX;
                                       #   see traitsui issue #13:
                                       # font   = 'Arial 8'
                                      ))
change = Button()
view = View(
    Item('data',show_label = False),
    Item('change',show_label = False),
    title     = 'Array Viewer',
    width     = 0.3,
    height    = 0.8,
    resizable = True
)
def _change_fired(self):
    self.data = np.arange(1,4)
#-- Run the demo ---------------------------------------------------------------

# Create the demo:
demo = ShowArray(data = random((100000, 3)))

# Run the demo (if invoked from the command line):
if __name__ == '__main__':
    demo.configure_traits()
我执行了代码,按下“更改”按钮,出现了错误:

Traceback (most recent call last):
File "C:\Python27\lib\site-packages\traitsui\wx\tabular_editor.py", line 167, in OnGetItemText
row, column )
File "C:\Python27\lib\site-packages\traitsui\tabular_adapter.py", line 323, in get_text
return self._result_for( 'get_text', object, trait, row, column )
File "C:\Python27\lib\site-packages\traitsui\tabular_adapter.py", line 574, in _result_for
return handler()
File "C:\Python27\lib\site-packages\traitsui\tabular_adapter.py", line 582, in <lambda>
return lambda: getattr( self, name )
File "C:\Python27\lib\site-packages\traitsui\tabular_adapter.py", line 412, in _get_text
self.object, self.name, self.row, self.column )
File "C:\Python27\lib\site-packages\traitsui\tabular_adapter.py", line 329, in get_content
return self._result_for( 'get_content', object, trait, row, column )
File "C:\Python27\lib\site-packages\traitsui\tabular_adapter.py", line 574, in _result_for
return handler()
File "C:\Python27\lib\site-packages\traitsui\tabular_adapter.py", line 582, in <lambda>
return lambda: getattr( self, name )
File "C:\Python27\lib\site-packages\traitsui\ui_editors\array_view_editor.py", line 53, in _get_content
return self.item[ self.column_id ]
IndexError: invalid index to scalar variable.
回溯(最近一次呼叫最后一次):
文件“C:\Python27\lib\site packages\traitsui\wx\tabular_editor.py”,第167行,在OnGetItemText中
行、列)
get_文本中的文件“C:\Python27\lib\site packages\traitsui\tabular_adapter.py”,第323行
返回self.\u result\u for('get\u text',object,trait,row,column)
文件“C:\Python27\lib\site packages\traitsui\tabular\u adapter.py”,第574行,位于
返回处理程序()
文件“C:\Python27\lib\site packages\traitsui\tabular\u adapter.py”,第582行,在
返回lambda:getattr(self,name)
文件“C:\Python27\lib\site packages\traitsui\tabular\u adapter.py”,第412行,在get\u文本中
self.object、self.name、self.row、self.column)
文件“C:\Python27\lib\site packages\traitsui\tabular\u adapter.py”,第329行,在get\u内容中
返回self.\u result\u for('get\u content',object,trait,row,column)
文件“C:\Python27\lib\site packages\traitsui\tabular\u adapter.py”,第574行,位于
返回处理程序()
文件“C:\Python27\lib\site packages\traitsui\tabular\u adapter.py”,第582行,在
返回lambda:getattr(self,name)
文件“C:\Python27\lib\site packages\traitsui\ui\u editors\array\u view\u editor.py”,第53行,在get\u内容中
返回self.item[self.column\u id]
索引器错误:标量变量的索引无效。

Python 2.7.3,32位。traitsui-4.2.0

我通过使用属性而不是数组解决了这个问题。。。