ipywidgets Textarea height = 'auto' не работает - PullRequest
1 голос
/ 05 апреля 2020

Я использую ipywidgets для создания Dashboard с вуаля

У меня есть Textarea следующим образом:

comm_text = widgets.Textarea(value='',
                            placeholder='OK',
                            description='',
                            style=style,
                            layout=widgets.Layout(height="auto", width="auto"))

то, что я притворяюсь с помощью высоты = "auto", это то, что при вводе строк в textarea текстовое поле расширяется по вертикали соответственно. (Я хочу, чтобы весь текст был видимым)

Это на самом деле не происходит. Как вы можете видеть на скриншоте, я ввел 8 строк, но текстовая область не расширяется.

Возможно ли это вообще? Если нет, то что на самом деле означает высота = "auto"?

out

1 Ответ

0 голосов
/ 06 апреля 2020

Параметр height = 'auto' устанавливает CSS виджета на 'auto'. Но это не имеет никакого эффекта для текстовой области, потому что количество строк жестко закодировано. Джейсон Грут говорит об этом в этом сообщении Github .

Если вы хотите увеличить текстовую область, вы можете использовать этот обходной путь:

def get_bigger(args):        
    comm_text.rows = comm_text.value.count('\n') + 1

comm_text = Textarea(value='',
                            placeholder='OK',
                            description='',
                            rows=1,                            
                            layout=Layout(width="auto"))
comm_text.observe(get_bigger, 'value')
comm_text

Отказ от ответственности : я не знаю, полезно ли это поведение. Вы откажетесь от контроля над размером текстовой области.

...