首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >更改IPython notebook小部件中标签的大小

更改IPython notebook小部件中标签的大小
EN

Stack Overflow用户
提问于 2014-11-25 05:46:34
回答 3查看 7.6K关注 0票数 6

这确实是一个微不足道的问题,但它仍然令人恼火。我正在编写一个工具,允许用户在IPython笔记本中为分析设置一组数值参数。我将它设置为ContainerWidget中的一堆FloatTextWidget。它们有相当长的标签,如“姿态点的数量”或“背景磁盘半径”。他们不会排得很整齐。这是因为标签的长度:正如this page上所解释的,“小部件的标签有一个固定的最小宽度。标签的文本总是右对齐的,小部件是左对齐的……如果标签比最小宽度长,小部件就会向右移动。”

我的标签超出了“固定最小宽度”。我想知道的是如何改变它。我翻遍了Widget的源代码,但我在任何地方都找不到。

编辑:响应@Jakob,here is some code,这是一个屏幕截图

在本例中,"Threshold:“足够小以适应标签的宽度,但是所有其他的都太长。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-11-25 23:42:25

我找到了这个问题的狭义答案:最小字段宽度是在site-packages/IPython/html/static/style/ipython.min.css中定义的(位于您的python库所在的位置--在我的Max上是/Library/Python/2.7/),其中widget-hlabel

代码语言:javascript
复制
.widget-hlabel{min-width:10ex;padding-right:8px;padding-top:3px;text-align:right;vertical-align:text-top}

min-width:10ex是相关的部分。

虽然可以覆盖整个文档,但我看不到一种简单的方法来一次更改一个小部件。这必须在Python端完成,因为FloatTextWidget类不提供从JavaScript端对小部件的label组件的单独访问。这将需要开发一个从FloatTextWidget派生的自定义小部件,对于这样一个简单的问题来说,这似乎太费力了,而且启动起来很脆弱。至少,这是我看到的唯一方法--欢迎更正。

相反,我决定完全避免自动标记带有描述的小部件,而是将每个标签构造为一个HTMLWidget,这样我就可以完全控制它的外观。这看起来是这样的:

票数 1
EN

Stack Overflow用户

发布于 2016-07-09 10:33:42

要在笔记本中更改样式,请执行以下操作:

代码语言:javascript
复制
from IPython.display import HTML, display

display(HTML('''<style>
    .widget-label { min-width: 20ex !important; }
</style>'''))
票数 5
EN

Stack Overflow用户

发布于 2018-07-16 07:07:58

对每个小部件使用layout参数。以下是文档的链接:特别是https://ipywidgets.readthedocs.io/en/latest/examples/Widget%20Styling.html,它说,您可以在HBox中分别定义描述和小部件,如下所示:

代码语言:javascript
复制
    from ipywidgets import HBox, Label, Layout
    label_layout = Layout(width='100px',height='30px')
    HBox([Label('A description',layout=label_layout), IntSlider()])
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27114757

复制
相关文章

相似问题

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