با سلام بهنام صباغی هستم با اموزش gui با کتابخانه tkinter این قسمت mouse
طریقه‌ی تعریف bind به همون صورت هست و فقط ایونت ها فرق میکنه پس من یه توضیحی درمورد ایونت ها میدم اول اینو بگم که کلید سمت چپ موس عددش 1 هست اون گردونه ای که وسط موس هست و میشه چرخوندش و میشه باهاش کلیک هم کرد 2 هست البته برای کلیک کردنش 2 هست  و کلید سمت راست 3 هست حالا ایونت های زیر رو ببینید اولین ایونت برای فشرده شدن کلید هست که میشه که برای همه یکسان عمل میکنه

<Button> or <ButtonPress>
ایونت زیر برای فشرده شدن هست که که اگر بجای keypress از keyrlrease استفاده کنیم برای ازادکردن کلید هست و میشه برای فشردن کلید فقط شماره کلید رو زد
<Button-1>
<ButtonPress-1>
<1>
هرسه تای بالا یه فشردن کلید سمت چپ دلالت میکنند و مثال زیرم برای ازاد کردن کلید هست
<ButtonRelease-1>
برای دوبار کلیک
<Double-Button-1>
برای سه بار کلیک
<Triple-Button-1>
 برای ورود موس به ابزارمون
<Enter>
برای ترک کردن ابزارمون
<Leave>
برای حرکت موسمون
<Motion>
برای حرکت موس با نگه داشتن کلید چپ (درگ کردن )
<B1-Motion>
حالا کد زیر رو ببینید برای هرانچه میتونیم از event مون بگیریم
#************************CODE*************************
from tkinter import *
from tkinter import ttk

root=Tk()
root.geometry('640x480+200+200')

canvas=Canvas(root,background='#FFFFFF')
canvas.pack()

def mouse_press(event):
    print('type: {}'.format(event.type))
    print('widget: {}'.format(event.widget))
    print('num: {}'.format(event.num))
    print('X: {}'.format(event.x))
    print('Y: {}'.format(event.y))

canvas.bind('<ButtonPress>',mouse_press)


root.mainloop()


#********************************************************

کد رو اجرا کنید توی قسمت سفید که مربوط به canvas هست کلیک کنید میبینید کار میکنه ولی اگر توی قسمتی که سفید نیست کلیک کنید هیچ اتفاقی نمیافته خب اگر دقت کرده باشید x و y  رو از ابتدای canvas میده اگر بخوایم از اول پنجرمون بگیریمش باید بجای x و y  از x_root و  y_root استفاده میکنیم
خب حالا میخوام دفتر نقاشی بسازم کیف کنید
#************************CODE*******************
from tkinter import *
from tkinter import ttk

root=Tk()
root.geometry('640x480+200+200')

canvas=Canvas(root,background='#FFFFFF')
canvas.pack()

def mouse_press(event):
    global prev
    prev=event
    print('type: {}'.format(event.type))
    print('widget: {}'.format(event.widget))
    print('num: {}'.format(event.num))
    print('X: {}'.format(event.x))
    print('Y: {}'.format(event.y))

canvas.bind('<ButtonPress>',mouse_press)

def draw(event):
    global prev
    canvas.create_line(prev.x,prev.y,event.x,event.y,width=5)
    prev=event

canvas.bind('<B1-Motion>',draw)
root.mainloop()

#*********************************************
خب دوستان تا اینجای اموزش ها رو اگر با من پیش اومده باشید میتونید خیلی راحت یک دفتر نقاشی با قابلیت تغییر اندازه فونت و رنگش و یه سری قابلیت دیگه بسازید و میتویند یک برنامه واژه پرداز مثل نوت پد بسازید و یا از همه جالب تر میتویند بازی بنویسید من همون بازی دوز رو با همین دانش نوشتم و صد البته میتونید بازی مثل قارچ خور هم بسازید که فقط لازمه thread ها رو کار کنید که خیلی هم سخت نیست فعلا خدا نگهدار تا درس بعدی