如果我通过css_classes
投放我的应用,如何通过bokeh serve --show
将css属性分配给分配给小部件的自定义类?
from bokeh.models import Button
button = Button(label="Press Me", css_classes=['myclass'])
curdoc().add_root(button)
答案 0 :(得分:2)
如果您不介意使用html模板,一旦定义了css类,就可以在css文件中设置它们的样式。 (如果你想在python中包含css样式,这个答案对你没有帮助)
这可以内联或包含外部css文件包含在html文档中。散景库中有一些例子(见下面的链接)。
文档中描述的散景应用程序文件夹结构:https://bokeh.pydata.org/en/latest/docs/user_guide/server.html#directory-format
在此处查看示例: https://github.com/bokeh/bokeh/tree/master/examples/app/gapminder
这是另一个使用外部css的应用程序: https://gist.github.com/anthonydouc/c8571f0a2f9aa8415bd566e1ac2ba237
答案 1 :(得分:0)
好的,我已经走到了这一步:
import os
from bokeh.plotting import curdoc
from bokeh.models import Button
from jinja2 import Environment, FileSystemLoader
button = Button(label="Press Me", css_classes=['myclass'])
z = curdoc()
env = Environment(loader=FileSystemLoader(os.getcwd()))
z.template = env.get_template('file.html')
z.add_root(button)
但我强烈认为应该有比这更简单的东西。 @bigreddot,你能给我一个线索吗?
答案 2 :(得分:0)
这是一个简单的小解决方法,直到bokeh维护者开始为标记小部件或类似的东西添加链接类:
header = Div(text="<link rel='stylesheet' type='text/css' href='myapp/static/mycss.css'>")
layout = column(header, other_content)
curdoc().add_root(layout)
请注意,您必须在目录模式下运行该应用程序,并且css文件应位于应用程序目录内名为static的文件夹中,但您无需摆弄任何模板或其他内容。