With the following minimal example, I can create buttons which interact with the Jupyter notebook and an HTML table, which is displayed in the notebook.
import ipywidgets
from IPython.display import display
from IPython.core.display import HTML
def func(btn):
print('Hi!')
btn1 = ipywidgets.Button(description="Click me!")
btn1.on_click(func)
btn2 = ipywidgets.Button(description="Click me!")
btn2.on_click(func)
display(btn1)
display(btn2)
display(HTML(
'<table>' +
'<tr><td>Something here</td><td>Button 1 here</td></tr>' +
'<tr><td>Something here</td><td>Button 2 here</td></tr>' +
'</table>'
))
I now would like to place the buttons in the html table. I tried investigating the method Widget._ipython_display_()
but this does not allow me to use the button inside my own html table.
(Please see the small table as an example. I want to place the buttons in a large table and use the buttons to delete rows from a database.)
In this question, the wanted to know, how to place widgets relative to each other. Here, I want to place the widgets inside other HTML code.
There doesn't seem to be an easy way to achieve this. You will either have to build a custom ipywidget to display a table, or manually write the code for an HTML button of which you'll have full control.
The best I could find was a way to emulate a table using an array of VBoxes inside an HBox:
Result: