Я использую виды в Enthought Traitsui. В представлении я использую Item('strings', enabled_when='len(x)>20')
, где 'strings'
- это список строк, а len(x)>20
никогда не будет истинным. Если в списке больше трех строк, я не вижу их всех. Я хотел бы иметь возможность прокручивать все строки, но в то же время не разрешать редактировать строки. Кто-нибудь знает, могу ли я иметь только что прочитанный и прокручиваемый элемент, а если нет, то какие альтернативы? Спасибо.Как я могу сделать View Item readonly И прокручиваемым в Enthought Traitsui?
1
A
ответ
0
Я думаю, что вы ищете способ настройки редактора. Вот общая идея в минимальном примере:
from traits.api import HasTraits, List
from traitsui.api import View, ListEditor, Group, Item
class Foo(HasTraits):
my_list = List()
def _my_list_default(self):
return [str(n) for n in range(6)]
traits_view = View(
Item('my_list',
style='custom',
editor=ListEditor(
style='text',
),
),
height=100,
)
if __name__ == '__main__':
f = Foo()
f.configure_traits()
Вы можете посмотреть в документации TraitsUI найти много способов, чтобы настроить вид с разными заводами редактора. Например, вы можете изменить style='readonly'
, чтобы предотвратить редактирование.
Почему это проблематично? 'ListEditor' и' ListStrEditor' имеют стили только для чтения. что ты уже испробовал? – aestrivex
Зачем вам нужно 'enabled_when = 'len (x)> 20'', если' len (x)> 20' никогда не является истинным? Вы используете это как способ получить редактор readonly? – aestrivex
@aestrivex Спасибо за ваши комментарии. Я пробовал несколько вещей, но не ListEditor. Я использовал «enabled_when = 'len (x)> 20'", чтобы получить редактор readonly. С ListEditor я могу получить стиль readonly, и я могу прокручивать список. – Antique