首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用ipyvuetify的Slider对象中的Slider?

如何使用ipyvuetify的Slider对象中的Slider?
EN

Stack Overflow用户
提问于 2021-04-21 16:49:33
回答 2查看 95关注 0票数 0

我正在使用ipyvuetify库创建一个仪表板应用程序。我想在我的Slider组件中添加一个额外的TextField作为插槽。我遵循了vuetify documentationslot documentation from ipyvuetify中给出的示例,但我没有设法使简单的"+“图标出现。

代码语言:javascript
运行
复制
range = v.RangeSlider(
    v_model = None,
    v_slots = [{
        'name': 'append',
        'children': [v.Icon(children=['mdi-plus'])]
    }]
)
range

我错过了什么?这有可能吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-04-23 00:57:08

您的示例不起作用,因为RangeSliderv_model是一个列表。

代码语言:javascript
运行
复制
range_ = v.RangeSlider(
    v_model = [1,2],
    min=1,
    max=10,
    v_slots = [{
        'name': 'append',
        'children': [v.Icon(children=['mdi-plus'])]
    }]
)
range_

但是,正如ipyvuetify中记录的v_slot错误一样,只要您与滑块交互,插槽就会消失。

一个变通办法是创建一个带有append_icon参数的自定义范围滑块(如果你正在寻找一个图标作为插槽)。

代码语言:javascript
运行
复制
class RangeSlider(v.RangeSlider):
    
    def __init__(self, *args, **kwargs):
        self.append_icon='mdi-plus'
        
        super().__init__(*args,**kwargs)
        
        self.on_event('click:append', self.add)
    
    def add(self, *args):
        self.v_model = [self.v_model[0]] + [self.v_model[1]+1]
        
rs=RangeSlider(min=1, max=10, v_model = [1,2])
rs

但是,如果您打算包含一个TextField,我可以创建一个定制的Flex元素,使两个小部件都链接在一起。

票数 0
EN

Stack Overflow用户

发布于 2021-04-23 18:47:21

正如@dguerrero提到的那样,插槽很棘手,并且不是完全支持的。对于文本字段,是否可以使用jsdlink?

代码语言:javascript
运行
复制
import ipyvuetify as v
import ipywidgets as widgets

rangeSlider = v.RangeSlider(class_='pa-2',
        thumb_label = True, 
        style_="max-width:500px",
        height = 90,
        v_model=[0,10.0],
        min=0,
        max=10.0,
        step=0.01,
        label='min/max:',
        vertical = False,
)

textField = v.TextField(class_='pa-2',
    style_="max-width:100px",
    v_model=rangeSlider.v_model,
    placeholder='',
    label='',
    disabled=False
)

widgets.jsdlink((rangeSlider,'v_model'),(textField,'v_model'))

v.Row(children=[rangeSlider,textField])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67192369

复制
相关文章

相似问题

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