python ipywidgets在小部件中以编程方式强制登顶

问题描述

我在笔记本中有一个小部件文本,如下所示:

myinput = widgets.Text(value='',palceholder='introduce your number')
        
def myinput_handler(sender):
    '''

    '''
    #do something
    
    
myinput.on_submit(myinput_handler)

# button
my_btn = widgets.Button(description='LOAD')
        
def my_btn_handler(change):
    
    if len(myinput.value) == '':
        my_input.value = 3333
    else:
        dossier = myinput.value 
       
    ##### ---> RUN myinput_handler(sender)
    
    
my_btn.on_click(my_btn_handler)

基本上,我想找到的是一种运行与提交小部件文本相同的代码方法,但是单击一个按钮

那里有什么主意吗?

解决方法

鉴于观察到的是在函数运行时只是通过小部件,难道您不能只运行处理程序函数并将小部件作为传递提交的参数直接传递给小部件吗?

import ipywidgets as widgets

myinput = widgets.Text(value='',placeholder='introduce your number')
        
def myinput_handler(sender):
    print(sender.value)
    
    
myinput.on_submit(myinput_handler)
display(myinput)

# button
my_btn = widgets.Button(description='LOAD')
        
def my_btn_handler(change):
    
    if len(myinput.value) == 0:
        myinput.value = '3333'
    else:
        dossier = myinput.value
       
    myinput_handler(myinput)
    
    
my_btn.on_click(my_btn_handler)
display(my_btn)