如何设置ipywidgets Combobox的observe回调仅按回车键后触发
要实现仅在按下回车键后才触发回调,你不需要使用observe监听value属性,直接使用ipywidgets Combobox组件自带的on_submit方法绑定回调即可,observe监听value会在每次输入字符、内容更新时触发,不符合你的需求。
完整实现代码
import ipywidgets as widgets # 定义Combobox组件 example_widget = widgets.Combobox( options = ['A','A1','A10','A101'], ensure_option = True, description ='Example' ) # 定义回调函数 def foo(widget): print('call back got triggered') # 可以通过widget.value获取当前输入框的最终内容 print(f'输入内容为:{widget.value}') # 绑定回车提交事件,替代原来的observe绑定逻辑 example_widget.on_submit(foo) # 渲染组件 example_widget
低版本ipywidgets兼容方案
如果你使用的ipywidgets版本过低不支持on_submit,也可以通过监听键盘事件实现:
def handle_keydown(event): # 判断按下的键是否为回车键 if event['key'] == 'Enter': print('call back got triggered') print(f'输入内容为:{example_widget.value}') example_widget._dom_events.add('keydown', handle_keydown)
内容的提问来源于stack exchange,提问作者cocojim
相关产品推荐
相关产品推荐

