potisanのプログラミングメモ

趣味のプログラマーがプログラミング関係で気になったことや調べたことをいつでも忘れられるようにメモするブログです。はてなブログ無料版なので記事の上の方はたぶん広告です。記事中にも広告挿入されるみたいです。

Python 3 tkinterのbind("<1>", ...)は左クリックでなく左ボタン降下

tkinterbind("<1>", ...)あるいはbind("<Button-1>", ...)は左クリックではなく左ボタン降下です。この方法でコールバック関数からポップアップメニューを呼び出すとボタンの表示が降下状態のままになります。

左クリックを検出したい場合はButton(..., command=...)などのcommand引数を使います。event: Event引数は使えなくなりますが、TkFrameのサブクラスを使っていればfn(self)selfからカーソル位置などを取得できるので問題ありません。

英語圏のページでも普通に間違えが書いてあるので、正解にたどり着くまで時間がかかりました。