IPython显示始终在Text / Markdown之前显示小部件

时间:2017-08-24 18:42:39

标签: python widget ipython jupyter-notebook ipython-notebook

我正在使用IPython模块在Jupyter Notebook上开发一个项目,我正在尝试同时显示小部件和Markdown格式的文本。但是,在显示小部件之前,我无法显示文本。以下代码段,例如:

import ipywidgets as widgets
from IPython.display import display, Markdown

display(Markdown("## Enter your name"))
name = widgets.Text(description="Enter your name: ")
display(name)

显示this output,即使我要求在显示小部件之前显示降价。如何强制Jupyter Notebook按我想要的顺序显示?

1 个答案:

答案 0 :(得分:1)

我相信这个错误已在ipywidgets的最新版本7中得到修复。更新到7.0后尝试相同的代码。您可以使用以下命令进行升级(假设您在anaconda上运行)。

conda install -c conda-forge ipywidgets

如果它仍然无效,请尝试使用dominate和HTML小部件。首先安装从命令行pip install dominate支配,然后您可以运行以下命令;

import ipywidgets as widgets
from dominate import tags
from IPython.display import display

header = widgets.HTML(tags.h2("Enter your name").render())
name = widgets.Text(description="Enter your name: ")

display(header, name)

对于改进的布局,此处的代码与HBoxLabel小部件的上述代码相同;

import ipywidgets as widgets
from dominate import tags
from IPython.display import display

header = widgets.HTML(tags.h3("Enter your name").render())
name = widgets.Text()
namebox = widgets.HBox([widgets.Label("Enter your name: "), name])

display(header, namebox)