Показать I Python .display. HTML объекты класса внутри ipywidgets - PullRequest
2 голосов
/ 02 мая 2020

Я хочу отобразить I Python .display. HTML объект, т.е. html_bt и виджет, т.е. bt, внутри HBox Layout. Как мне этого добиться? Это вообще возможно? Или как мне конвертировать html_bt в объекты виджетов? Вот мой код:

from ipywidgets import widgets, Layout, HBox
from IPython.display import display, HTML

css_str = '<style>.foo{color:#F00;} )} </style>'


out = widgets.Output()

def OnClick():
    with out:
        print('QQQ')

html_bt=HTML(css_str + '<button class="button-style" onclick="IPython.notebook.kernel.execute(\'OnClick()\')"> <img src="https://www.fnordware.com/superpng/pnggrad16rgb.png" alt="Snow"></button>')

bt = widgets.Button(
    description='Click me',
    disabled=False,
    button_style='', # 'success', 'info', 'warning', 'danger' or ''
    tooltip='Click me',
    icon='check' # (FontAwesome names without the `fa-` prefix)
)


h_box = HBox([bt, display(html_bt)])
h_box

1 Ответ

0 голосов
/ 04 мая 2020

ipywidgets имеет свой собственный виджет HTML, если вы используете, он дает то, что вы хотите?

from ipywidgets import widgets, Layout, HBox, HTML
# from IPython.display import display, HTML

css_str = '<style>.foo{color:#F00;} )} </style>'


out = widgets.Output()

def OnClick():
    with out:
        print('QQQ')

html_bt=HTML(css_str + '<button class="button-style" onclick="IPython.notebook.kernel.execute(\'OnClick()\')"> <img src="https://www.fnordware.com/superpng/pnggrad16rgb.png" alt="Snow"></button>')

bt = widgets.Button(
    description='Click me',
    disabled=False,
    button_style='', # 'success', 'info', 'warning', 'danger' or ''
    tooltip='Click me',
    icon='check' # (FontAwesome names without the `fa-` prefix)
)

h_box = HBox([bt, html_bt])
h_box
...