visible_when有多个逻辑测试

时间:2015-04-27 22:28:00

标签: enthought traitsui

在TraitsUI中,对于Item(),是否可以设置一个包含多个项目的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"和上面提到的逃脱的单引号一样......对我来说都不起作用。 我也试过使用'和'和'&&'也没有区别。

1 个答案:

答案 0 :(得分:3)

是的,多项测试都有效。要验证这一点,请运行稍加修改的https://raw.githubusercontent.com/enthought/traitsui/master/examples/demo/Dynamic_Forms/visible_when.py,例如,将两个visible_when条件更改为:

main

var adsPromise = Restangular.one('ads', path)
 .customGET("search", params).then(function(result){
  overlay.set(false);
  return {$object:result}
});
return adsPromise;

我建议检查有关数据内容的假设。

(顺便说一句,字符串可以使用双引号或转义单引号 - 我建议双引号以便于阅读)