visible_when 具有多个逻辑测试
visible_when with multiple logical tests
在 TraitsUI 中,对于一个 Item(),是否可以设置一个包含超过 1 个项目的 visible_when() 参数列表?
例如,我想要这样的东西:
Group(
Item(FirstItem, visible_when = 'foo == 1 and bar == 0'),
Item(SecondItem, visible_when = 'foo == 0 and bar == 1),
Item(ThirdItem, visible_when = 'foo == 0 and bar == 0)
)
这样只有 FirstItem、SecondItem 或 ThirdItem 会根据 foo 和 bar 中的值显示。
这可能吗?我做了初步尝试,但没有成功(这可能是因为我的一个逻辑测试涉及一个字符串——我的问题是在 visible_when 字符串中进行字符串测试吗?这就是我的 visible_when 测试看起来像(并且不起作用):
visible_when = 'Initial_value == 1 && display_units == \'SI\'',
我试过用双引号 "SI" 和上面的转义单引号引起来的 SI...都不适合我。
我也试过使用 'and' 和 '&&' 也没有区别。
是的,多个测试有效。为了验证这一点,运行 稍微修改了 https://raw.githubusercontent.com/enthought/traitsui/master/examples/demo/Dynamic_Forms/visible_when.py,例如,您将两个 visible_when 条件更改为:
visible_when = 'age < 18 and last_name=="Smith"',
和
visible_when = 'age >= 18 or last_name!="Smith"',
我建议检查有关数据内容的假设。
(顺便说一句,字符串可以与双引号或转义单引号一起使用——为了便于阅读,我建议使用双引号)
在 TraitsUI 中,对于一个 Item(),是否可以设置一个包含超过 1 个项目的 visible_when() 参数列表?
例如,我想要这样的东西:
Group(
Item(FirstItem, visible_when = 'foo == 1 and bar == 0'),
Item(SecondItem, visible_when = 'foo == 0 and bar == 1),
Item(ThirdItem, visible_when = 'foo == 0 and bar == 0)
)
这样只有 FirstItem、SecondItem 或 ThirdItem 会根据 foo 和 bar 中的值显示。
这可能吗?我做了初步尝试,但没有成功(这可能是因为我的一个逻辑测试涉及一个字符串——我的问题是在 visible_when 字符串中进行字符串测试吗?这就是我的 visible_when 测试看起来像(并且不起作用):
visible_when = 'Initial_value == 1 && display_units == \'SI\'',
我试过用双引号 "SI" 和上面的转义单引号引起来的 SI...都不适合我。 我也试过使用 'and' 和 '&&' 也没有区别。
是的,多个测试有效。为了验证这一点,运行 稍微修改了 https://raw.githubusercontent.com/enthought/traitsui/master/examples/demo/Dynamic_Forms/visible_when.py,例如,您将两个 visible_when 条件更改为:
visible_when = 'age < 18 and last_name=="Smith"',
和
visible_when = 'age >= 18 or last_name!="Smith"',
我建议检查有关数据内容的假设。
(顺便说一句,字符串可以与双引号或转义单引号一起使用——为了便于阅读,我建议使用双引号)