如何在散景中获取选择小部件的on_change值?

时间:2018-06-18 11:32:29

标签: python-3.x bokeh

我想在浏览器中显示select()散景窗口小部件的选定值。

这是我的代码,我有数据框和值,这就是我的小部件被填充的方式!!!

multi_select = Select (title = "Select Quarters" , value = str1, options = df)

这是使用此功能调用的方式!!

def function_to_call(attrname, old, new):
  print(multi_select.value)

这是我的HTML模板,它将调用选择值。

text=("""<!DOCTYPE html>
<html lang="en">
   <head>
      <meta charset="utf-8">
      {{ bokeh_css }}
      {{ bokeh_js }}
   </head>
   <body>
      <style type="text/css">
         {% include 'styles.css' %}
      </style>
      {{ plot_div|indent(8) }}
      {{ plot_script|indent(8) }}
      <div>
         <h1 style="color:#8CC43F">{selectval}</h1>
      </div>
   </body>
</html>
""")

这里{selectval}值正在从下拉列表中替换我的multi_select值!!

m =multi_select.on_change('value',function_to_call)
text = text.format(selectval=m)
div = Div(text=text,width=200, height=100) 

这就是我调用小部件的方式

curdoc().add_root(widgetbox(multi_select,div))

执行此操作后,仍未显示选择列表中所选选项的值。例如,如果我选择Quarter-4,那么它应该在我的div或文本框中显示为文本Quarter-4,我的浏览器&#34;屏幕。

任何帮助将不胜感激。在此先感谢!!

1 个答案:

答案 0 :(得分:1)

在您的功能中,您可以直接更改div小部件的文本

def function_to_call(attrname, old, new):
  div.text = new

此处attrname是&#39;值&#39;

old是Select窗口小部件更改前的值

new是Select小部件的新值