1

我正在使用 ipywidgets 创建一个仪表板,瞧

我有一个 Textarea 如下:

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

我用 height="auto" 假装的是,在 textarea 中输入行时,文本框会相应地垂直扩展。(我想让所有的文字都可见)

它实际上并没有发生。正如您在屏幕截图中看到的那样,我引入了 8 行,但 textarea 并没有随之扩展。

这有可能吗?如果不是,那么实际上 height="auto" 代表什么?

出去

4

2 回答 2

1

参数 height='auto' 将小部件的 CSS 设置为 'auto'。但它对 textarea 没有影响,因为行数是硬编码的。Jason Grout 在这篇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

免责声明:我不知道这种行为是否有用。您将放弃控制 textarea 的大小。

于 2020-04-06T20:19:32.040 回答
1

如果你改变

layout=widgets.Layout(height="auto", width="auto")

为了

layout=widgets.Layout(height="100%", width="auto")

它将调整大小以显示其上的所有文本 Textarea 的value 默认值)。

在此处输入图像描述

但是,它不会随着您键入而增长。我不记得任何在网页上执行此操作的文本区域。

还有一件事。如果您使用网格,height="auto"并调整 Textarea 的大小(拖动角),它将调整网格的其他相关元素的大小。

在此处输入图像描述

如果您使用,那将不会发生height="100%"

于 2021-11-27T19:52:05.763 回答