от
Я пытаюсь реализовать какой-то форме с
IPython widgets
. У меня возникли проблемы с поведением, когда отключение виджеты. Похоже, он не обновляется сразу и не ждать пока обновление UI. Ниже приводится пример.
# Initialized button and text box
a = widgets.Text(
    value='',
    placeholder=r'Enter path of twix file here (e.g. T:\tri_services\...)',
    description='Twix path:',
    disabled=False,
    layout=textbox_layout
)
btn_convert = widgets.Button(
    description='Convert to NMR Pipe',
    disabled=True,
    button_style='', # 'success', 'info', 'warning', 'danger' or ''
    tooltip='Convert',
    layout=button_layout
)

# Listener on textbox and button
def on_value_change(change):
    btn_convert.disabled = (change['new'] == "")

a.observe(on_value_change, names='value')

def on_button_clicked(b):
    global a, btn_convert
    a.disabled = True
    btn_convert.disabled = True
    try:
        datetime_str = datetime.datetime.now().strftime('%Y%m%d_%H%M%S%f')
        result_path = root_result   datetime_str   ".fid"
        # using pyjulia
        j.eval(f'using TriMRS; twix_to_nmrpipe("{a.value}","{result_path}")')
     except JuliaError as e:
         print(e)
         javascript(f"alert('Please ensure you pass in correct file path');")
    finally:
        a.disabled = False
        a.value = ""
Поведение я получаю это
btn_convert
и
a
(
textbox
), кажется, быть отключен после того, как процесс завершен, не раньше, что я хотела. Я также попытался положить
time.sleep
дождаться обновления пользовательского интерфейса, но я, кажется, не сделать трюк. Есть ли способ, чтобы заставить пользовательского интерфейса/вид/Виджеты обновить?

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
...