Python和科学计算认证群组  - 讨论区

标题:关于TraitsUi中TableEditor中添加双击事件

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哲思注册吗?现在 注册 !

    Zeuux © 2024

    京ICP备05028076号