簡體   English   中英

如何刪除所有以前注冊的小部件事件處理程序(使用觀察或 on_click 注冊)

[英]How to remove all previous registered handlers for widgets events (registered with observe or on_click)

我已經創建並注冊了一個處理程序。

# Example code
selectWidgetName.observe(myFunction, 'value')

然后我更新了 function 的代碼,想用同樣的命令重新注冊它。

這將添加一個與第一個並行的處理程序,而不是覆蓋第一個。

如何刪除所有現有的處理程序以應用一個新的且只有一個?

對於按鈕:

# Remove existing click handler
buttonWidgetName._click_handlers.callbacks = []

# Add our handler
buttonWidgetName.on_click(newFunction)

對於使用觀察的小部件:

# Remove existing handler
selectWidgetName.unobserve(None)

# Add our handler
selectWidgetName.observe(newFunction, 'value')

感謝NimSed的第二個。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM