2011年12月12日 星期一 17:06
由于需要处理一系列的文本文件。
我准备将数据拆分后使用TableEditor来展示。
我想添加一个,单击/双击某行后,
将TableEditor中的数据中的满足某个条件
比如:第一列的值相同
将这些数据动态的Plot出来。
在plot中加入拖拽数据点功能。
这样也方便的人机交互,作为整个数据文件的预处理。
我在TableEditor的ObjectColumn的父类TableColumn中找到了预留的:
on_click和on_dclick
不过现在还没有想到办法调用TableEditor的数据。
请各位帮我看下,谢谢。
2011年12月13日 星期二 10:33
用继承:
class ClickColumn(ObjectColumn):
def on_dclick ( self, object_ ):
object_.print_traits()
然后用ClickColumn定义列就行了。object_就是双击那一行所对应的对象。
2011年12月13日 星期二 13:39
我将已经将双击事件加入到代码中,
但是object对象只能获取到该行的值,
还没有想到办法可以任意的取得table中的值。
有什么办法可以直接操作table中的数据吗?
2011年12月13日 星期二 15:20
你可以把table存在每行的object中,或者把table保存在ClickColumn对象中
2011年12月15日 星期四 14:19
尝试了很久,都没有能够获取到数据,最终:
砍掉了plot部分。
感觉是过度设计了。
之前确实是实现了两个plot联动
主plot拖动时,副plot更新到对应点的几个原始数据。
不过,现在用了表格,确实不好实现。
现在有新的问题了,
table里面有一个edit_view
这个view的高度不太合适,却没有办法控制。
在table中貌似两个参数控制,高度和宽度。
但是设置后都没有效果。
# Width to use for the edit view
edit_view_width = Float( -1.0 )
# Height to use for the edit view
edit_view_height = Float( -1.0 )
2011年12月15日 星期四 15:55
TraitsUI中Group的大小不好用程序调节。所以应该是没有办法。也许可以不用edit_view,在TableEditor外面单独创建一个编辑器,然后用VSplit将它们两个放到一起。并且设置VSplit的id,这样虽然不能用程序控制高度,但是用户调节的高度可以被保存下来,下一次打开时就好了。
Zeuux © 2024
京ICP备05028076号