我正在使用与此处演示的模板相似的模板为bokeh应用程序创建一个仪表板:
基本上,我将应用程序的不同功能分为不同的脚本,这些脚本的功能返回一个Panel对象,该对象包含要在main.py上定义的Tabs对象中导入的布局。
例如,这是我的read.py脚本返回的内容:
# First layout / plot
read_layout = bla.layout([firstColRaw,
secondColRaw,
bmo.Spacer(width=50),
thirdColRaw])
def read_tab():
tab = bmo.Panel(child=read_layout, title='Read in data')
return tab
这是我main.py上的内容:
from scripts.read import read_tab
# Tabs to select the app function
tab1 = read_tab()
nav_tabs = [tab1]
tabs = bmo.Tabs(tabs=nav_tabs, width=1500)
# Create the main layout
layout_main = bla.column(buttons,
tabs,
height=300,
width=1500)
# Put the tabs in the current document for display
doc.add_root(layout_main)
当我尝试更新选项卡之一的布局时遇到问题。在此特定示例中,我想向用户动态显示环境中正在加载多少原始数据文件。
在这种情况下,我修改了thirdColRaw变量的内容,然后将div添加到布局对象中。
如果我如上所述运行应用程序,则无法更新选项卡的内容。另一方面,如果我不使用Tabs,而是从main.py加载read_layout并将其添加到当前文档中,则布局更新就可以了。
这是否意味着我不能动态修改/添加/删除面板布局组件?还是我做错了什么?
谢谢!
答案 0 :(得分:0)
从散景0.13开始,这是known layout bug。当前正在进行大型PR,以同时解决许多布局问题,包括该问题,但要等到Bokeh 1.1发布后才能准备就绪。同时,我只能建议:
components
将图样模板化为非散景布局。