使用ipywidgets水平显示单选按钮

SML

我想使用ipywidgets水平显示单选按钮。

radio_input1 = widgets.RadioButtons(options = ['Option 1','Option 2'])

但是它垂直显示单选按钮:

在此处输入图片说明

我试图在HBox中将仅具有一个选项的单选按钮添加到每个单选按钮中,然后从观察者方法中取消选择选定的单选按钮,但是在取消观察事件之前,先重新注册观察事件。不知何故,它调用了3次:

output_radio_selected = widgets.Text() # Used to take the user input and access it when needed
radio_input1 = widgets.RadioButtons(options=['Option 1', 'Option 2']) # Declare the set of radio buttons and provide options
radio_input2 = widgets.RadioButtons(options=['Option 3', 'Option 4'])
def bind_selected_to_output(sender): # Connect the input from the user to the output so we can access it
    #radio_input1.unobserve(bind_selected_to_output)
    radio_input1.unobserve_all()
    radio_input1.index=0
    #print(sender)
    global selected_option # Global variable to hold the user input for reuse in your code
    output_radio_selected.value = radio_input1.value
    selected_option = output_radio_selected.value # Example variable assigned the selected value
    print('Selected option set to: ' + selected_option) # For test purposes
    radio_input1.observe(bind_selected_to_output)


radio_input1.observe(bind_selected_to_output) # Run the bind... function when the radio button is changed
#radio_input1.observe(bind_selected_to_output, names=['value'])
#radio_input1 # Display the radio buttons to the user

widgets.HBox([radio_input1])
SML

我可以通过可能的破解来做到这一点,我不知道它的正确解决方案,但是它可以工作。我使用了4个不同的单选按钮和HBox小部件。HBox([radio1,radio2,radio3,radio4])然后选择一个单选按钮后,即取消选择另一个选中的单选按钮。这是我的工作方式:

import ipywidgets as widgets
import numpy


output_radio_selected = widgets.Text()
radio1 = widgets.RadioButtons(options=['Option 1'])
radio2 = widgets.RadioButtons(options=['Option 2'])
radio3 = widgets.RadioButtons(options=['Option 3'])
radio4 = widgets.RadioButtons(options=['Option 4'])

radio1.index = None
radio2.index = None
radio3.index = None
radio4.index = None

def radio1_observer(sender):
    #print(sender)
    radio2.unobserve(radio2_observer, names=['value'])
    radio2.index = None

    radio3.unobserve(radio3_observer, names=['value'])
    radio3.index = None

    radio4.unobserve(radio4_observer, names=['value'])
    radio4.index = None

    global selected_option
    output_radio_selected.value = radio1.value
    selected_option = output_radio_selected.value
    print('Selected option set to: ' + selected_option)

    radio2.observe(radio2_observer, names=['value'])
    radio3.observe(radio3_observer, names=['value'])
    radio4.observe(radio4_observer, names=['value'])

def radio2_observer(sender):
    radio1.unobserve(radio1_observer, names=['value'])
    radio1.index = None

    radio3.unobserve(radio3_observer, names=['value'])
    radio3.index = None

    radio4.unobserve(radio4_observer, names=['value'])
    radio4.index = None

    global selected_option2
    output_radio_selected.value = radio2.value
    selected_option2 = output_radio_selected.value
    print('Selected option set to: ' + selected_option2)

    radio1.observe(radio1_observer, names=['value'])
    radio3.observe(radio3_observer, names=['value'])
    radio4.observe(radio4_observer, names=['value'])

def radio3_observer(sender):
    radio1.unobserve(radio1_observer, names=['value'])
    radio1.index = None

    radio2.unobserve(radio2_observer, names=['value'])
    radio2.index = None

    radio4.unobserve(radio4_observer, names=['value'])
    radio4.index = None

    global selected_option3
    output_radio_selected.value = radio3.value
    selected_option3 = output_radio_selected.value
    print('Selected option set to: ' + selected_option3)

    radio1.observe(radio1_observer, names=['value'])
    radio2.observe(radio2_observer, names=['value'])
    radio4.observe(radio4_observer, names=['value'])

def radio4_observer(sender):
    radio1.unobserve(radio1_observer, names=['value'])
    radio1.index = None

    radio2.unobserve(radio2_observer, names=['value'])
    radio2.index = None

    radio3.unobserve(radio3_observer, names=['value'])
    radio3.index = None

    global selected_option4
    output_radio_selected.value = radio4.value
    selected_option4 = output_radio_selected.value
    print('Selected option set to: ' + selected_option4)

    radio1.observe(radio1_observer, names=['value'])
    radio2.observe(radio2_observer, names=['value'])
    radio3.observe(radio3_observer, names=['value'])

radio1.observe(radio1_observer, names=['value'])
radio2.observe(radio2_observer, names=['value'])
radio3.observe(radio3_observer, names=['value'])
radio4.observe(radio4_observer, names=['value'])

widgets.HBox([radio1,radio2,radio3,radio4])

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在matplotlib中水平显示单选按钮

来自分类Dev

使用FormHelper显示单选按钮

来自分类Dev

使用FormHelper显示单选按钮

来自分类Dev

单选按钮水平对齐

来自分类Dev

如何使用ipywidgets在HMTL中显示toogle按钮的输出?

来自分类Dev

如何使用ui:repeat显示单选按钮?

来自分类Dev

如何显示使用变量选择的单选按钮?

来自分类Dev

使用单选按钮显示特定图像

来自分类Dev

使用jQuery显示单选按钮的值

来自分类Dev

使用jQuery仅显示必需的单选按钮

来自分类Dev

jQuery使用单选按钮隐藏和显示

来自分类Dev

使用单选按钮显示/隐藏画布

来自分类Dev

使用相关的单选按钮 jquery 显示数据

来自分类Dev

单选按钮布局以使水平

来自分类Dev

单选按钮显示div

来自分类Dev

单选按钮不显示

来自分类Dev

单选按钮显示div

来自分类Dev

使用纯CSS使单选按钮与单选按钮很好地内联显示

来自分类Dev

使用jQuery Cookie使用单选按钮显示/隐藏div

来自分类Dev

如何显示水平按钮

来自分类Dev

如何使用单选按钮显示和隐藏表格?

来自分类Dev

使用单选按钮和JQuery显示/隐藏Dropbox

来自分类Dev

使用jquery获取单选按钮的值并根据选择显示文本

来自分类Dev

如何通过单击单选按钮使用dojo显示/隐藏DIV?

来自分类Dev

使用Javascript基于单选按钮显示/隐藏字段集

来自分类Dev

与c3结合使用的单选按钮不显示文本

来自分类Dev

使用JQuery选中单选按钮时显示隐藏内容

来自分类Dev

如何使用引导程序垂直显示单选按钮

来自分类Dev

显示无法与滑块的单选按钮一起使用