Py.Cafe

Coderambling/

panel-dynamic-widgets-01

Panel Dynamic Widgets

DocsPricing
  • app.py
  • requirements.txt
app.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
import panel as pn

pn.extension(template="fast")

import panel as pn
pn.extension(theme='dark')
w1 = pn.widgets.Button(name='Click me 01') # , icon='caret-right', button_type='primary')
w2 = pn.widgets.Button(name='Click me 02')
all_dicts03 = {
    'Button01': w1,
    'Button02': w2
}

widgets_selector01 = pn.widgets.CrossSelector(value=[w1], options=all_dicts03)

# widget_row01=pn.Row(widgets_selector01.param.value) # shows a field
# with title:Value and text content:[Button(name='Click me 01'), Button(name='Click me 02')]
widget_row01=pn.Row(objects=widgets_selector01.param.value).servable() # Adding objects=, however, makes it work.
test_object01=pn.Column(objects=widgets_selector01.param.value)
test_object02=pn.Card(title='Card test', objects=widgets_selector01.param.value)
# title is not available for every widget.
test_object03=pn.FlexBox(objects=widgets_selector01.param.value) #.servable()
test_object04=pn.WidgetBox(objects=widgets_selector01.param.value)
test_object05=pn.Param(w1) #(objects=w1)# (objects=widgets_selector01.param.value)

# widget_row_options = widget_row01.controls

# test_object07=pn.Accordion(objects=widgets_selector01.param.value)

# test_object05=pn.FloatPanel(objects=widgets_selector01.param.value)
# test_object06=pn.Tabs(objects=widgets_selector01.param.value)

widget_box = pn.FlexBox(w1.controls, widgets_selector01, 
test_object02, test_object01, test_object05).servable()

# Not working:

# test_object07=pn.Accordion(objects=widgets_selector01.param.value).servable()
# test_object08=pn.Tabs(objects=widgets_selector01.param.value).servable()
# test_object09=pn.Param(objects=widgets_selector01.param.value).servable()
# test_object10=pn.GridBox(objects=widgets_selector01.param.value).servable()
test_object11=pn.FloatPanel("Test Float Panel")
# test_column=pn.Column(test_object11, widgets_selector01).servable()

# test_column01=pn.Column(test_object11).servable()

# FloatPanel: test_object03=pn.FlexBox(objects=widgets_selector01.param.value)
# Accordion


# TypeError: panel.layout.base.ListLike.__init__() got multiple values for keyword argument 'objects'



# Tabs
# TypeError: panel.layout.base.ListLike.__init__() got multiple values for keyword argument 'objects'

# Object_column = pn.Column(widgets_selector01, widget_row01, test_object01, test_object02, test_object03).servable() # works in next cell, buttons show / disappear when using selector boxes.
# 
# Next notebook cell: Flexbox04. Execute cell and it works as expected.

# param value: Type:List
# Value:<param.parameters.List object at 0x78e2e9a40a90>