tkinterのbind("<1>", ...)
あるいはbind("<Button-1>", ...)
は左クリックではなく左ボタン降下です。この方法でコールバック関数からポップアップメニューを呼び出すとボタンの表示が降下状態のままになります。
左クリックを検出したい場合はButton(..., command=...)
などのcommand
引数を使います。event: Event
引数は使えなくなりますが、Tk
やFrame
のサブクラスを使っていればfn(self)
のself
からカーソル位置などを取得できるので問題ありません。
英語圏のページでも普通に間違えが書いてあるので、正解にたどり着くまで時間がかかりました。