[Enaml] [py36]:订阅运算符不会触发“可见”观察者

时间:2018-09-14 14:17:50

标签: enaml

我正在构建一个GUI,该GUI分为3列和1+行。行数由用户通过IntField决定。

由于每行(显示的)都将包含绘图,因此我不想将其与窗口分离,以避免重新创建它们。因此,我想隐藏不应显示的行,保留已创建并已附加的图。为此,我在考虑容器的visible属性。

不幸的是,在我的情况下,订阅似乎不适用于可见字段。

代码如下:

enamldef MyMenu(Container):
  attr context
  IntField:
    minimum = 1
    value := context.first_row
  IntField:
    minimum = 1
    value := context.last_row

enamldef MyPanel(Container):
  attr context
  Label:
    text << str(context.last_row - context.first_row)
    # subscription will work and label is updated
  Looper:
    iterable = range(35)
    Container:
      visible << loop_index <= context.last_row - context.first_row
      # visible won't update.
      # Only the init value of last_row and first_row will have an impact
      contraints = [height == 150]
      Label:
        text << str(context.last_sig - context.first_sig)
        # subscription will work and label is updated even in the loop & the container

有人有主意吗?

0 个答案:

没有答案