下記のコードで分からない所があります
python
1from tkinter import * 2import tkinter.messagebox as msgbox 3 4def main(): 5 global cv 6 win=Tk() 7 cv=Canvas(win,width=400,height=300) 8 cv.pack() 9 cv.bind("<1>",canvas_click) 10 win.mainloop() 11 12def canvas_click(e): 13 global cv 14 mx=e.x 15 my=e.y 16 cv.create_oval( 17 mx-10,my-10,mx+10,my+10, 18 fill="red") 19main()
関数canvas_clickについてなんですが
関数を定義した時引数にeと記述していますが、main()関数内でcv.bind("<1>",canvas_click)
でcanvas_clickを記述した時、canvas_clickに何か引数を渡しているわけでもないのに
何故、mx=**e.xとmy=e.y**といった記述でマウスのx座標、y座標が代入出来るんでしょうか?
そもそもe.xとe.yという記述はeという変数が持ってるデータアトリビュートという様な書き方と似てますけど
上記の式ではeは何も持ってない筈なんじゃないでしょうか?
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/11 04:31