1

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)
)

そのため、foo と bar の値に基づいて、FirstItem、SecondItem、または ThirdItem のみが表示されます。

これは可能ですか?私は最初の試みをしましたが、運がありませんでした (私のロジック テストの 1 つに文字列が含まれている可能性があります。visible_when 文字列内に文字列テストがあるのは問題でしょうか? これが私の visible_when テストの外観です (そしてそうではありません動作していません):

visible_when = 'Initial_value == 1 && display_units == \'SI\'',

SI を二重引用符 "SI" で囲み、上記のように単一引用符をエスケープして試しましたが、どちらもうまくいきませんでした。また、「and」と「&&」を使用してみましたが、どちらも違いはありません。

4

1 に答える 1

3

はい、複数のテストが機能します。これを確認するには、わずかに変更したhttps://raw.githubusercontent.com/enthought/traitsui/master/examples/demo/Dynamic_Forms/visible_when.pyを実行します。たとえば、2 つの visible_when 条件を次のように変更します。

    visible_when = 'age < 18 and last_name=="Smith"',

    visible_when = 'age >= 18 or last_name!="Smith"',

データの内容に関する仮定を確認することをお勧めします。

(ところで、文字列は二重引用符またはエスケープされた単一引用符のいずれかを使用できます-読みやすくするために二重引用符をお勧めします)

于 2015-04-27T23:06:01.563 に答える