Как обновить (сетевой) график с помощью TextInput? - PullRequest
0 голосов
/ 10 июля 2019

Я пытаюсь выяснить что-то, на первый взгляд, простое: пользователь вводит текст, используя TextInput, и мы динамически обновляем отображаемый график.

data - график networkx;график представляет собой подграф, сосредоточенный вокруг узла пользовательского ввода.Я хочу избегать предоставления пользователю меню выбора узлов для выбора, потому что их много.

Самое близкое, что я могу найти в качестве решения, это: Боке: Показать пользовательский ввод текста но здесь вы не сохраняете и позже ссылаетесь на то, что пользователь ввел.Вы отображаете только то, что пользователь только что ввел в TextInput.

У меня есть функция, которая принимает узел в качестве входных данных и выбрасывает нужный мне график:

def my_plot (node): # сделать графиксюжет возврата объекта

show (my_plot ('NodeA'))

возвращает то, что я хочу.Я пытаюсь сделать выбор NodeA динамическим.

def my_doc (doc):

ti = TextInput(value = 'NodeA', title='Enter node')
nd = 'A'
# Default
plot = my_plot(nd)

def callback(attr, old, new):
    if ti.value != '':
        plot = my_plot(new)
        # tried ti.value here, no change
    else:
        print('Will develop better error messages later')

ti.on_change('value', callback)   

layout = column(widgetbox(ti),plot)

doc.add_root(layout)

show (my_doc) приводит к графику по умолчанию, показанному с введенным выше текстом, но то, что выввод просто не влияет ни на что

Я пытался сохранить новое значение внутри обратного вызова с помощью nd = new # или ti.value, но затем print (nd) просто печатает 'A' по умолчанию

Это не похоже на то, что TextInput хранится или на него можно ссылаться за пределами обратного вызова.

...