1.ipywidgets.widgets的几个应用
执行下面的代码前提要:import ipywidgets.widgets as widgets
a.文本1
widgets
.Text(value
='HELLO WORLD',placeholder
='Type something',description
='String',disable
=False
)
执行结果:
b.文本2
widgets
.Textarea(value
='HELLO WORLD',placeholder
='Type something',description
='String',disable
=False
)
执行结果:
c.滑块
left_slider
= widgets
.FloatSlider(description
= 'left',min
= -1.0,max
=1.0,step
= 0.01,orientation
='vertical')
right_slider
= widgets
.FloatSlider(description
= 'right',min
= -1.0,max
=1.0,step
= 0.01,orientation
='vertical')
slider_container
= widgets
.HBox([left_slider
,right_slider
])
display(slider_container
)
执行结果:
d.按钮
button_layout
= widgets
.Layout(width
='100px',height
='80px',align_self
='center')
stop_button
= widgets
.Button(description
='stop',button_style
='danger',layout
=button_layout
)
forward_button
= widgets
.Button(description
='forward',layout
=button_layout
)
backward_button
= widgets
.Button(description
='backward',layout
=button_layout
)
left_button
= widgets
.Button(description
='left',layout
=button_layout
)
right_button
= widgets
.Button(description
='right',layout
=button_layout
)
middle_box
= widgets
.HBox([left_button
,stop_button
,right_button
],layout
=widgets
.Layout(align_self
='center'))
controls_box
= widgets
.VBox([forward_button
,middle_box
,backward_button
])
display(controls_box
)
执行结果:
2.traitlets
a. traitlets.link
import traitlets
left_link
= traitlets
.link((left_slider
, 'value'), (robot
.left_motor
, 'value'))
right_link
= traitlets
.link((right_slider
, 'value'), (robot
.right_motor
, 'value'))
traitlets.link连接左右滑块和左右电机,使得操作左右滑块能够实时控制左右电机,同时左右电机值改变,左右滑块也会变化。相当于双向链接。 注:left_link.unlink表示断开二者链接
b. traitlets.dlink
import traitlets
left_link
= traitlets
.dlink((robot
.left_motor
, 'value'), (left_slider
, 'value'))
right_link
= traitlets
.dlink((robot
.right_motor
, 'value'), (right_slider
, 'value'))
traitlets.dlink连接左右滑块和左右电机,使得左右滑块能够实时显示左右电机值,但是左右滑块并不能用来控制电机。相当于单向链接,只作为显示。