首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BoundsEditor在TraitsUI中的应用

BoundsEditor在TraitsUI中的应用
EN

Stack Overflow用户
提问于 2015-09-21 10:42:49
回答 1查看 225关注 0票数 2

我想使用BoundsEditor (在TraitsUI中)进行范围选择。如何访问高值和低值?为了进行测试,我使用了RangeEditor --它按预期工作(在移动滑块时,将打印当前值)。但是我不能从BoundsEditor中得到任何值。任何指点都会受到赞赏。

我使用以下(简化代码):

代码语言:javascript
复制
from traits.api \
    import HasTraits, Button, Range
from traitsui.api \
    import View, Item, Group, RangeEditor
from traitsui.qt4.extra.bounds_editor import BoundsEditor

class Parameters(HasTraits):
    rgb_range = Range(0.,1.0)
    range1 = rgb_range
    range2 = rgb_range
    eval_button = Button("Eval")  

    traits_view= View(
        Item('range1')), #editor=RangeEditor()
        Item('range2', editor=BoundsEditor()),
        Item('eval_button'))


    def _range1_changed(self, value):
        print(value)

    def _range2_changed(self, *arg, **kwargs):
        print(arg)

    def _range2_changed(self, *arg, **kwargs):
        print(arg)

    def _range2_low_changed(self, *arg, **kwargs):
        print(arg)

    def _range2_high_changed(self, *arg, **kwargs):
        print(arg)

    def _eval_button_fired(self):
        print(self.range1)
        print(self.range2)


if __name__ == '__main__':
    alg = Parameters()
    alg.configure_traits() 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-22 14:00:58

我刚刚开始了解自己的特点,所以我相信其他人能比我更好地解释这一点。我正在使用来自http://blog.enthought.com/enthought-tool-suite/traits/new-double-slider-editor/#.VgFbYLTgtWQ的一个例子。我声明了低值和高值的变量,并将它们传递到BoundsEditor()中。然后,我声明了当这些值改变时运行的函数。我得到了我认为接近你要找的东西。

代码语言:javascript
复制
from traits.api \
    import HasTraits, Button, Range, Float
from traitsui.api \
    import View, Item, Group, RangeEditor
from traitsui.qt4.extra.bounds_editor import BoundsEditor

class Parameters(HasTraits):
    rgb_range = Range(0.,1.0)
    range1 = rgb_range
    range2 = rgb_range
    low_val = Float(0.0)
    high_val = Float(1.0)
    eval_button = Button("Eval")  

    traits_view= View(
        Item('range1', editor=RangeEditor()),
        Item('range2', editor=BoundsEditor(low_name = 'low_val', high_name = 'high_val')),
        Item('eval_button'))


    def _range1_changed(self, value):
        print(value)

    def _low_val_changed(self):
        print(self.low_val)

    def _high_val_changed(self):
        print(self.high_val)

    def _eval_button_fired(self):
        print(self.range1)
        print(self.low_val)
        print(self.high_val)

if __name__ == '__main__':
    alg = Parameters()
    alg.configure_traits() 
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32693213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档