【问题标题】:Horizontal scroll bar does not working when using ipywidget in Python在 Python 中使用 ipywidget 时水平滚动条不起作用
【发布时间】:2020-06-01 01:12:30
【问题描述】:

我正在 Jupyter 实验室学习 ipywidget。我想要的是在数据框中搜索关键字,然后显示结果。因此,结果是一个可能很大的数据框。所以,我需要垂直条和水平条来显示所有数据。下面是示例代码:

import pandas as pd
import numpy as np
import ipywidgets as widgets
from IPython.display import display
from ipywidgets import Button, Layout
import warnings

warnings.filterwarnings('ignore')
pd.set_option("display.max_rows", None)
pd.set_option('display.max_columns',None)
pd.set_option('max_colwidth', 4000)

a=pd.DataFrame({'a1':['aaaaaaaaaaaaaaaaaaaa','bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb','vvvvvvvvvvvvvvvvvvvvvvvvvvv','abc'],
                'a2':['bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb','eeeeeeeeeeeeeeeeeeeeeeeeeeee','sssssssssssssssssssssssssssss','abc'],
                'a3':['qqqqqqqqqqqqqqqqqqqqqqq','aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa','rrrrrrrrrrrrrrrrrrrrrrrrr','abc']})

keyword=widgets.Text(
    value='abc',
    placeholder='Type something',
    description='keyword:',
    disabled=False
)
#display(keyword)

button = widgets.Button(description="search")
#display(button)

input_widgets = widgets.HBox([keyword,button])
display(input_widgets)

#,width='500px', overflow_x='auto'
#output = widgets.Output(layout=Layout(height='400px', overflow_y='auto',width='1600px', overflow_x='auto'))
output = widgets.Output(layout=Layout(height='100px', width='500px',overflow='scroll'))

@output.capture()
def on_button_clicked(btn):
    output.clear_output()
    display(a)

button.on_click(on_button_clicked)
display(output)

从图中可以看出竖条可以用,但是单条不能用。只有滚动到数据框的末尾才能看到水平条,这不是我们通常做的。我希望水平条可以显示在区域的末尾。

【问题讨论】:

标签: python scroll widget jupyter-lab


【解决方案1】:

一个简单的解决方法是将文本区域小部件(无布局)放在 HBox 小部件中,并具有以下布局

box_layout = widgets.Layout(display='flex',
                            flex_flow='row',
                            border='1px solid black',
                            width='140px',
                            height='400px')

【讨论】:

    【解决方案2】:

    output.layout.overflow = '可见'

    【讨论】:

      猜你喜欢
      • 2012-09-05
      • 1970-01-01
      • 2021-03-01
      • 2022-01-18
      • 1970-01-01
      • 2017-01-07
      • 2017-09-22
      • 2021-09-11
      • 2019-11-02
      相关资源
      最近更新 更多