首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何捕捉ipyvuetify单选按钮组值捕捉器?

如何捕捉ipyvuetify单选按钮组值捕捉器?
EN

Stack Overflow用户
提问于 2021-04-15 09:15:46
回答 2查看 154关注 0票数 0

我有一个小部件,包括一个单选按钮组,如:

代码语言:javascript
复制
parts =vue.RadioGroup(children=[vue.Radio(label='XX'),
                                             vue.Radio(label='YY'),
                                             vue.Radio(label='ZZ')])

我不知道如何访问用户单击的内容,因此我尝试检查单选按钮组的所有属性:

代码语言:javascript
复制
out = widgets.Output()

def on_click_radio(widget, event, data):
    with out:
        out.clear_output()
        print("you have clicked", data)
        print("v_model is:", widget.v_model)
        print("value is", widget.value)
        print("active-class is", widget.active_class)
        widgetsKeys = widget.keys
        
#         for key in widgetsKeys:
#             print(f'{key}: ',eval(f'widget.{key}'))
#         
        

parts.on_event("change",on_click_radio)

display(parts,out)

我看到数据从0变为2( 0,1,2 ),但我想访问值'XX‘、'YY’或'ZZ?

在单选按钮组中要访问的属性是什么?我以为它和文本输入一样是v_model,但事实并非如此。

谢谢

PS1:它应该是这些属性之一:https://vuetifyjs.com/en/api/v-radio-group/#props,但是我不知道通过打印出哪一个属性

PS2:通过“_trait_values”字典访问这些值似乎很麻烦。对吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-04-18 17:24:35

有两种可能的解决办法。你喜欢哪一个取决于你的具体情况。

解决方案1:用收音机传递一个值

代码语言:javascript
复制
parts = vue.RadioGroup(
    children=[
        vue.Radio(label='XX', value='XX'),
        vue.Radio(label='YY', value='YY'),
        vue.Radio(label='ZZ', value='ZZ')
    ]
)

这将足以填充以下数据:

您单击了XX

解决方案2:将on_click_radio方法附加到单个收音机,而不是RadioGroup:

代码语言:javascript
复制
xx = vue.Radio(label='XX')
yy = vue.Radio(label='YY')
zz = vue.Radio(label='ZZ')

parts = vue.RadioGroup(children=[xx,yy,zz])

def on_click_radio(widget, event, data):
    print("label is", widget.label)

xx.on_event("change",on_click_radio)
yy.on_event("change",on_click_radio)
zz.on_event("change",on_click_radio)

这将允许您访问通过on_click_radio方法的小部件参数单击的Radio:

标签为XX

票数 0
EN

Stack Overflow用户

发布于 2021-04-20 08:28:07

你需要在无线电组中初始化v_model。然后您可以从Radio的孩子那里找到标签。见下文。

代码语言:javascript
复制
import ipyvuetify as vue
parts =vue.RadioGroup(
            v_model=None,
            children=[
                 vue.Radio(label='XX'),
                 vue.Radio(label='YY'),
                 vue.Radio(label='ZZ'),
                    ])

def on_click_radio(widget, event, data):
    print("Active radio label is", widget.children[widget.v_model].label)
        
parts.on_event("change",on_click_radio)

parts

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67105627

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档