20.1.6.7 バインドとイベント

ウィジェットコマンドからのbindメソッドによって、あるイベントを待つことと、そのイベント型が起きたときにコールバック関数を呼び出すことができるようになります。bindメソッドの形式は:

    def bind(self, sequence, func, add=''):
ここでは:

sequence
は対象とするイベントの型を示す文字列です。(詳細については、bindのmanページとJohn Ousterhoutの本の201ページをを参照してください。)

func
は一引数を取り、イベントが起きるときに呼び出される Python 関数です。イベント・インスタンスが引数として渡されます。(このように実施される関数は、一般にcallbacksとして知られています。)

add
はオプションで、""か"+"のどちらかです。 空文字列を渡すことは、このイベントが関係する他のどんなバインドをもこのバインドが置き換えることを意味します。 "+"を使う仕方は、この関数がこのイベント型にバインドされる関数のリストに追加されることを意味しています。

例えば:

    def turnRed(self, event):
        event.widget["activeforeground"] = "red"

    self.button.bind("<Enter>", self.turnRed)

イベントのウィジェットフィールドがturnRed()コールバック内でどのようにアクセスされているかに注意してください。 このフィールドはXイベントを捕らえるウィジェットを含んでいます。 以下の表はあなたがアクセスできる他のイベントフィールドとそれらのTkでの表現方法の一覧です。Tk manページを参照するときに役に立つでしょう。

Tk      Tkinterイベントフィールド       Tk      Tkinterイベントフィールド
--      -------------------------       --      -------------------------
%f      focus                           %A      char
%h      height                          %E      send_event
%k      keycode                         %K      keysym
%s      state                           %N      keysym_num
%t      time                            %T      type
%w      width                           %W      widget
%x      x                               %X      x_root
%y      y                               %Y      y_root

ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。