首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ipywidgets height='auto‘不起作用

ipywidgets height='auto‘不起作用
EN

Stack Overflow用户
提问于 2020-04-05 16:44:44
回答 2查看 3.2K关注 0票数 1

我正在使用ipywidget创建一个带有voila的仪表板。

我有一个如下所示的区域:

代码语言:javascript
运行
复制
comm_text = widgets.Textarea(value='',
                            placeholder='OK',
                            description='',
                            style=style,
                            layout=widgets.Layout(height="auto", width="auto"))

我用height="auto“假装的是,当在textarea中输入行时,文本框相应地垂直展开。(我希望所有文本都可见)

它实际上并不会发生。正如您在屏幕截图中看到的,我介绍了8行代码,但文本区域没有扩展。

这有可能吗?如果不是,height=的“自动”到底代表什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-11-27 19:52:05

如果你改变了

代码语言:javascript
运行
复制
layout=widgets.Layout(height="auto", width="auto")

代码语言:javascript
运行
复制
layout=widgets.Layout(height="100%", width="auto")

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

但是,当你打字的时候,它不会长出来。我不记得任何在网页上这样做的文本区域。

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

如果你使用height="100%",那就不会发生了

票数 2
EN

Stack Overflow用户

发布于 2020-04-06 20:19:32

参数widget = 'auto‘将小部件的CSS设置为“auto”。但是它对文本区域没有影响,因为行数是硬编码的。杰森·格劳特( Jason )在这个Github哨所中谈到了这一点。

如果您想要一个不断增长的文本区域,您可以使用以下解决方法:

代码语言:javascript
运行
复制
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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61046005

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档