[Enaml] [py36]: оператор подписки не запускает «видимого» наблюдателя - PullRequest
0 голосов
/ 14 сентября 2018

Я строю графический интерфейс, который разделен на 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

У кого-нибудь есть идеи?

1 Ответ

0 голосов
/ 15 сентября 2018

Хммм, не уверен, почему visible не работает для вас.Так должно быть.Сейчас у меня нет времени на его отладку.

Вы можете попробовать использовать объект Conditional в качестве родительского для контейнера:

enamldef MyPanel(Container):
  attr context
  Label:
    text << str(context.last_row - context.first_row)
  Looper:
    iterable = range(35)
    Conditional:
      condition << loop_index <= context.last_row - context.first_row
      Container:
        Label:
          text << str(context.last_sig - context.first_sig)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...