简单的小部件¶
参考:examples/Widget Basics.ipynb
- Widgets
小部件是在浏览器中有一种表现形式的事件型 Python 对象,通常作为滑动条、文本框等控件。
小部件可以用来做什么?¶
可以使用小部件为笔记本构建交互式 GUI。还可以使用小部件在 Python 和 JavaScript 之间同步有状态和无状态信息。
使用小部件¶
要使用小部件框架,您需要导入 ipywidgets
。
import ipywidgets as widgets
repr
¶
小部件有自己的显示 repr
,允许使用 IPython 的显示框架来显示它们。构造并返回 IntSlider
会自动显示小部件。小部件显示在代码单元格下面的输出区域内。清除单元格输出也将删除小部件。
widgets.IntSlider()
display()
¶
还可以使用 display(…)
显式地显示小部件。
from IPython.display import display
w = widgets.IntSlider()
display(w)
关闭小部件¶
可以通过调用小部件的 close()
方法来关闭它。
w1 = widgets.IntSlider()
display(w1)
w1.close()
w1
IntSlider(value=0)
为什么同一个小部件可以显示两次?¶
小部件在后端由单个对象表示。每当显示一个小部件时,同一对象的新表示就会在前端创建。这些表示称为视图。
小部件属性¶
所有的 IPython 小部件共享类似的命名方案。要读取小部件的值,可以查询它的 value
属性。
w = widgets.IntSlider()
display(w)
w.value
0
类似地,要设置小部件的值,可以设置其 value
属性。
w.value = 100
w
Keys¶
除了 value
之外,大多数小部件共享 keys
、description
和 disabled
。要查看任何特定小部件的同步、有状态属性的整个列表,可以查询 keys
属性。
w.keys
['_dom_classes',
'_model_module',
'_model_module_version',
'_model_name',
'_view_count',
'_view_module',
'_view_module_version',
'_view_name',
'continuous_update',
'description',
'description_tooltip',
'disabled',
'layout',
'max',
'min',
'orientation',
'readout',
'readout_format',
'step',
'style',
'value']
设置小部件属性初始值的简写¶
在创建小部件时,可以通过在小部件的构造函数中将它们定义为关键字参数来设置该小部件的一些或所有初始值。
widgets.Text(value='Hello World!', disabled=True)
链接两个类似的小部件¶
如果需要以两种不同的方式显示相同的值,则必须使用两种不同的小部件。您可以使用 link
或 jslink
函数将两个属性链接在一起(它们之间的区别将在 Widget Events 中讨论),而不是尝试手动同步两个小部件的值。
a = widgets.FloatText()
b = widgets.FloatSlider()
display(a,b)
mylink = widgets.jslink((a, 'value'), (b, 'value'))