更改内容容器大小的Bokeh CheckboxGroup

2024-09-28 16:58:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个动态更新的CheckboxGroup,只要我不把小部件放到更复杂的行或列的设置中,它的容器大小就会重新调整。一旦布局变得更加复杂,当动态地向CheckboxGroup添加条目时,小部件会重叠(大小保持在原始高度)。下面是一些测试代码:

import sys, os
from collections import OrderedDict
from bokeh.io import curdoc
from bokeh.layouts import row, column
from bokeh.models.widgets import CheckboxGroup, Div, Button


def guiBuildLayout(guiElements):
    layout = column(guiElements.values())
    return layout

def update_checkbox():
    checkbox.labels += checkbox.labels

guiElements = OrderedDict()

divHTML = '<p>TEST.</p>'
guiElements.update({'test': row(Div(text=divHTML, height=30))})

checkbox = CheckboxGroup(labels=['aa','bb','cc','dd','ee','ff'])

guiElements.update({'chbx': row(children=[checkbox])})

button = Button(label='Grow!')
button.on_click(update_checkbox)
guiElements.update({'but': button})

divHTML2 = '<p>TEST2.</p>'
guiElements.update({'test2': row(Div(text=divHTML2, height=30))})

mainLayout = guiBuildLayout(guiElements)

curdoc().add_root(mainLayout)
curdoc().title = "Check Checkboxgroup"

如果复选框组没有放在第一行(在添加到widgets列之前),重新调整大小就可以了。 你知道有什么方法可以避免这种情况吗?


Tags: fromimportdivlabels部件bokeh动态update