Holoviz面板:如何在回调方法中提取按钮名称?

问题描述 投票:0回答:1

我需要 Holoviz Panel 回调方法的按钮名称,因为该名称还充当包含要在单击时执行的 sql 命令的字典的键。我尝试搜索传递给回调的事件是否可以具有一些属性(包括名称),但我什么也没找到。必须(?)有一种方法来识别已单击的按钮。有人可以帮我解决这个问题吗?除了名称提取之外,以下格式适用于 Jupyter Lab。

class Query:
    
    def __init__(self):
        self.buttons = [btn_0, btn_1, btn_2]
        self.data = dict

    def callback(self, event):
        
        value = self.dict[button_name]
        # Run an SQL query using the value
        return (the query result)

    def bind_buttons(self):
        
        for button in self.buttons:
            pn.bind(callback, self.button, watch=True)

query = Query()
query.bind_buttons()
query_buttons = pn.Column(
    '# Queries', 
    query.buttons[0],
    query.buttons[1],
    query.buttons[2],
)
python button callback holoviz-panel
1个回答
0
投票

可以通过使用

on_click
而不是
bind
来避免这个问题。
on_click
方法允许从
event.obj.name
中提取名称。以下模式有效。

class Query:
    
    def __init__(self):
        self.buttons = [btn_0, btn_1, btn_2]
        self.data = dict

    def callback(self, event):
        
        value = self.dict[event.obj.name]
        # Run an SQL query using the value
        return (the query result)

    def bind_buttons(self):
        
        for button in self.buttons:
            button.on_click(callback)

query = Query()
query.bind_buttons()
query_buttons = pn.Column(
    '# Queries', 
    query.buttons[0],
    query.buttons[1],
    query.buttons[2],
)
© www.soinside.com 2019 - 2024. All rights reserved.