我正在使用matplotlib构建交互式图形应用程序。我希望它与现有的#34; pan"和"缩放"默认matplotlib GUI的功能,但我也想掩盖一些键击。我的问题是,我不知道如何抑制GUI对这些击键的默认响应。例如,GUI通过退回历史记录中的一个视图来响应退格键:我想用我自己的自定义行为替换此行为:
def KeyUp(event):
if event.key.lower() == 'backspace':
RespondToBackspace()
PreventAnybodyElseRespondingToBackspace() # HOW??
import matplotlib.pyplot as plt
cid = plt.gcf().canvas.mpl_connect( 'key_release_event', KeyUp )
我找不到关于取消或取消事件处理的文档,并且在我的搜索字词上已经没有创意了。推测性地认为这个机制会像在其他工具箱中一样工作,我尝试从回调中返回True
或False
,但没有效果(即"后退一个视图" ;当我按退格键时,行为仍然会发生,同时还有我的自定义响应。
这可能吗?
答案 0 :(得分:0)
来自tacaswell上面的评论:
回调存储在字典中,因此无法保证调用它们的顺序。回调返回值被忽略。
解决方案是更改matplotlib.rcParams['keymap.back']
,使其不包含'backspace'
。