Python.use(better,Tkinter)《余録》Event: mouse events
|記事一覧|
Python.use(better, Tkinter)
Event: mouse events《Python3.1》
《著》森こねこ・小粒ちゃん+∞《監修》小泉ひよ子とタマゴ倶楽部
第0版♪1993/11/25
関連記事
〓 事例:イベント処理
次のコードを実行すると、ウィンドウが現われます。
>>> ex_mouse_events()
。 | マウスポタンを押すと、オブジェクトが出現します。 |
マウスカーソルが中に入ると、赤になります。 | マウスカーソルが外に出ると、青になります。 |
カーソルを移動すると、オブジェクトも移動します。 | ポタンを離すと、オブジェクトが固定します。 |
class TIPS(object): radius = 8 color_create = "yellow" color_Enter = "red" color_Leave = "blue" def __init__(self, canvas): self.canvas = canvas self.bind() def bind(self): for sequence, func in [ ("<1>" , self.mouse_Press ), ("", self.mouse_Motion), ]: self.canvas.bind(sequence, func) def mouse_Press(self, event): X = event.x Y = event.y if not event.widget.find_withtag(CURRENT): R = self.radius item = self.canvas.create_oval( X-R, Y-R, X+R, Y+R, fill=self.color_create, ) for e in "Enter","Leave": self.canvas.tag_bind( item, " "%e, getattr(self, "mouse_%s"%e), ) self.x = X self.y = Y def mouse_Motion(self, event): X = event.x Y = event.y self.canvas.move( CURRENT, X-self.x, Y-self.y, ) self.x = X self.y = Y def mouse_Enter(self, event): self.canvas.itemconfig( CURRENT, fill=self.color_Enter, ) def mouse_Leave(self, event): self.canvas.itemconfig( CURRENT, fill=self.color_Leave, ) def ex_mouse_events(): root = Tk() root.title("mouse events") root.geometry("200x185") w = Canvas( root, width=150, height=150, bg="Yellow", relief=RIDGE, borderwidth=2, ) w.pack() tips = TIPS(w) w = Button( root, text="Quit", command=lambda: root.destroy(), ) w.pack(side=BOTTOM) root.mainloop()
Last updated♪2009/09/05