0

我想在每个散景选项卡(散景面板)中有几个表格

但是,表格水平连接在一起,我找不到很好地展示它们的方法。我使用了一个愚蠢的 Div 作为快速解决方案,但它创建了太多空间,即使是宽度 = 1 的 Div。我将如何实现这一目标?这是我的代码:

from bokeh.models.widgets import Panel, Tabs, TableColumn,DataTable, Div
import numpy as np
from bokeh.io import output_notebook, show
from bokeh.models import ColumnDataSource
from bokeh.layouts import row, column, layout

output_notebook()

columns = [
        TableColumn(field="A", title="A"),
        TableColumn(field="B", title="B"),
        TableColumn(field="C", title="C"),
        TableColumn(field="D", title="D"),]


data1 = {"A":np.random.randint(23, 89, 10), 
        "B": np.random.randint(23, 89, 10), 
        "C": np.random.randint(23, 89, 10), 
        "D": np.random.randint(23, 89, 10)}
source1 = ColumnDataSource(data1)
p1 = DataTable(source=source1, columns=columns, width=300, height=200,editable=True)


data2 = {"A":np.random.randint(23, 89, 10), 
        "B": np.random.randint(23, 89, 10), 
        "C": np.random.randint(23, 89, 10), 
        "D": np.random.randint(23, 89, 10)}
source2 = ColumnDataSource(data2)      
p2 = DataTable(source=source2, columns=columns, width=300, height=200,editable=True)



data3 = {"A":np.random.randint(23, 89, 10), 
        "B": np.random.randint(23, 89, 10), 
        "C": np.random.randint(23, 89, 10), 
        "D": np.random.randint(23, 89, 10)}
source3 = ColumnDataSource(data3)       
p3 = DataTable(source=source3, columns=columns, width=300, height=200,editable=True)


dumbdiv = Div(text=""" """,
width=1, height=20)


l1 = layout([[p1, p2], [p3]], sizing_mode='fixed')
# l1 = layout([[p1, dumbdiv, p2]], sizing_mode='fixed')


tab1 = Panel(child=l1, title="Three Tables")
tabs = Tabs(tabs=[tab1],sizing_mode='scale_width')
show(tabs)

这是结果:(第一个表的滚动条没有显示;我想要第一行的表之间有一些空间)

在此处输入图像描述

4

2 回答 2

1

width和是的height可选参数Div。如果您只是创建一个dumbdiv没有这些参数的对象,您将在 p1 和 p2 之间插入一个没有任何特定widthor的 div height

dumbdiv = Div()
l1 = layout([[p1, dumbdiv, p2], [p3]], sizing_mode='fixed')

所以,现在您应该看到 p1 和 p2 之间有足够的空间:

在此处输入图像描述

于 2019-02-17T12:45:01.940 回答
0

Div() 的问题是两个数据表之间可能存在相当大的差距——远远超过需要。我认为使用 Spacer 看起来更好

row2 = row(p1, Spacer(width=600, height=10), p2)
l1 = layout([row2], sizing_mode='fixed')
于 2019-07-31T14:00:19.010 回答