【问题标题】:changing font attributes in jupyter notebook label widget更改 jupyter 笔记本标签小部件中的字体属性
【发布时间】:2016-07-31 14:06:59
【问题描述】:

我正在尝试在 python 2.7 中修改 jupyter 标签小部件的字体属性(重量、颜色等)。例如,我尝试了以下方法:

import ipywidgets as widgets
myLabel= widgets.Label(value = 'Some Label',color = '#ff0000') #change font color to red
myLabel

当我运行这段代码时,我没有收到任何错误,但是标签颜色仍然是默认的黑色。

【问题讨论】:

    标签: python widget jupyter


    【解决方案1】:

    我知道有两种方法。

    1. HTML 小部件
    2. 带有乳胶的标签小部件
    text = 'Some text'
    
    htmlWidget = widgets.HTML(value = f"<b><font color='red'>{text}</b>")
    
    labelWidget = widgets.Label(value = r'\(\color{red} {' + text  + '}\)')
    

    更新:现在使用 Ipyvuetify....

    import ipyvuetify as v
    text = 'Some text'
    v.Html(tag="div", children=[text], style_ = "color: red; font-weight: bold")
    

    【讨论】:

    • 我想控制字体大小。对于 HTML 版本,您可以使用 htmlWidget = widgets.HTML(value = f"&lt;b&gt;&lt;font color='red'&gt;&lt;font size=10&gt;{text}&lt;/b&gt;")。这似乎以像素为单位。请注意,增加此字体大小可能会使全局布局边界饱和。例如。你可能会要求font size=100,但它看起来仍然像font size=10
    • @JohnMahoney ,如果你使用 Ipyvuetify,你可以使用这个:v.Html(tag="div", children=['Some text'], style_ = " color: red; font-family : courier;字体大小:100px;字体粗细:粗体")
    • 当需要格式化时,HTML 小部件是标签小部件的多功能替代品,例如可以写:HTML(value= r'&lt;p style="font-size:24px"&gt;&lt;b&gt;My Title&lt;/b&gt;&lt;/p&gt;)
    【解决方案2】:

    这是一个较晚的回复,但对于仍然遇到此问题的每个人,您可以使用乳胶格式为小部件标签和描述添加样式。这是一个将标签文本着色为红色的示例:

    myLabel= widgets.Label(value = r'\(\color{red} {highlighted}\)')
    

    【讨论】:

      【解决方案3】:

      小部件的开发者之一says here,所有布局选项都应完成in the layout attribute

      目前我正在探索此属性的功能,但似乎无法更改字体、字体颜色或字体大小。

      这可能是你必须编写自己的 css 文件。

      【讨论】:

        【解决方案4】:

        HTML 小部件(不能在集合中聚合,例如 VBox、Hbox、Tab)和在标签内使用 LaTeX 格式(将格式为等式 - 这通常不是被通缉)。

        克服这两个限制的方法是使用小部件的 add_class 方法,以允许您创建任何 CSS 样式:

        from ipywidgets import Label
        from IPython.display import display, HTML
        
        display(HTML("<style>.red_label { color:red }</style>"))
        l = Label(value="My Label")
        l.add_class("red_label")
        display(l)
        

        【讨论】:

          【解决方案5】:

          如果标签使用 HTML 的特定元素,您可以使用

          import IPython
          import ipywidgets as widgets
          
          IPython.display.HTML('<style> widget-label   { color: red; } </style>')
          myLabel= widgets.Label(value = 'Some Label') ;
          myLabel
          

          然而,widget-label 在这种情况下不是一个元素,而是一个 CSS 类。所以@AlanDyke 给出的选项是次优的,要么使用它已有的类。

          import IPython
          import ipywidgets as widgets
          
          IPython.display.HTML('<style> .widget-label   { color: red; } </style>')
          myLabel= widgets.Label(value = 'Some Label') 
          myLabel
          

          或者创建一个新的附加它。

          import IPython
          import ipywidgets as widgets
          
          #IPython.display.HTML('<style> .widget-label, .redlabel   { color: red; } </style>')
          IPython.display.HTML('<style> .redlabel   { color: red; } </style>')
          myLabel= widgets.Label(value = 'Some Label') ;
          myLabel.add_class('redlabel');
          myLabel
          

          类似问题请见https://stackoverflow.com/a/70228454/4752223

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2020-05-16
            • 1970-01-01
            相关资源
            最近更新 更多