2016-10-05 8 views
1

私はmatplotlibを使ってインタラクティブなグラフィカルアプリケーションを構築しています。私はそれがデフォルトのmatplotlib GUIの既存の "パン"と "ズーム"機能でうまくいくようにしたいが、いくつかのキーストロークを隠したいと思う。私の問題は、これらのキーストロークに対するGUIのデフォルトの応答を抑制することを知らないことです。例えば、GUIは、歴史の中でバック1つのビューを踏んでバックスペースキーに応答:私は私自身のカスタム動作で、この動作を置き換えたい:matplotlibイベントのさらなる処理を抑制する方法

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をコールバックから戻してみました。つまり、私のカスタムレスポンスとともに、バックスペースを押す)。

これは可能ですか?上記tacaswellのコメントから

+0

'rcpams ['keymap.back']'に '' backspace''を含めません。返された値は 'cbook.CallbackRegistry.process'で無視されます(これはイベントディスパッチと同じです)。 – tacaswell

+0

さらに、コールバックは辞書に格納され、処理の順序は保証されません。 – tacaswell

答えて

0

:それらが呼び出される順序は保証できませんので

コールバックは、辞書に格納されています。コールバックの戻り値は無視されます。

解決策は、が含まれないようにmatplotlib.rcParams['keymap.back']を変更することです。

関連する問題