问题描述
成功了!
但是,当我单击按钮时,它向我显示一条错误消息,它似乎是一个事件侦听器。
我需要做什么?
我尝试实现onBridgeCmd,但是没有用(不知道怎么实现)。
def blur_text(editor):
showdialogtitle(editor.currentField,'anki')
def addBlurButton(buttons,editor):
editor._links['blur_text'] = blur_text
buttons += [editor._addButton(ICON_PATH,"blur","Blur Text")]
return buttons
addHook("setupEditorButtons",addBlurButton)
错误:
调试信息:Anki 2.1.35 (4e12c7ef) Python 3.8.5 Qt 5.12.2 PyQt 5.12.1 平台:Linux 标志:frz=False ao=True sv=2 附加组件,最后更新 检查:2021-01-21 14:27:50 可能涉及的附加组件:Anki IPA, 模糊文本,search_in_dictionaries
捕获异常:回溯(最近一次调用最后一次):文件 "/snap/anki-woodrow/27/lib/python3.8/site-packages/aqt/webview.py",第 37 行,在 cmd 中 返回 json.dumps(self.onCmd(str)) 文件“/snap/anki-woodrow/27/lib/python3.8/site-packages/aqt/webview.py”, 第 123 行,在 _onCmd 中 返回 self._onBridgeCmd(str) 文件 "/snap/anki-woodrow/27/lib/python3.8/site-packages/aqt/webview.py",第 547 行,在 _onBridgeCmd 中 返回 self.onBridgeCmd(cmd) File "",line 2,in onBridgeCmd File "/snap/anki-woodrow/27/lib/python3.8/site-packages/anki/hooks.py",第 638 行,在 decorator_wrapper 中 返回 repl(*args,**kwargs) 文件“/snap/anki-woodrow/27/lib/python3.8/site-packages/anki/hooks.py”, 第 635 行,在 repl return new(_old=old,*args,**kwargs) 文件“/home/element/snap/anki-woodrow/27/.local/share/Anki2/addons21/search_in_dictionaries/init.py ”, 第 230 行,在 on_bridge_cmd 中 _old(editor,command) File "",**kwargs) 文件“/home/element/snap/anki-woodrow/27/.local/share/Anki2/addons21/blur_text/init.py ”, 第 59 行,在 on_bridge_cmd 中 _old(editor,**kwargs) 文件“/home/element/snap/anki-woodrow/27/.local/share/Anki2/addons21/799647424/main.py”,第 183 行,在 on_bridge_cmd 中 _old(editor,command) 文件“/snap/anki-woodrow/27/lib/python3.8/site-packages/aqt/editor.py”, 第 385 行,在 onBridgeCmd 中 (type,ord,nid,txt) = cmd.split(":",3) ValueError: 没有足够的值来解包(预期 4,得到 1)
解决方法
问题是按钮的事件名称,我需要更改它,出于某种原因,Anki 系统中使用了“blur_text”。
def contrast_text(editor: Editor) -> None:
...
def add_contrast_button(buttons: List[str],editor: Editor) -> List[str]:
button = editor.addButton(ICON_PATH,"contrast",contrast_text)
buttons.append(button)
return buttons
addHook("setupEditorButtons",add_contrast_button)