Как сделать вывод координат мыши, только если она попадает в определённую область
Необходимо, чтобы координаты мыши выводились только тогда, когда происходит нажатие на мышь в определённой зоне (допустим зона имеет форму квадрата.)
Сделал небольшой код, но почему-то условие if не срабатывает.
from tkinter import *
from PIL import Image, ImageTk
root = Tk()
x=0
y=0
def getorigin(event):
global x,y
if (x>=0 or x<=100) and (y>=0 or y<=100):
x = event.x
y = event.y
print(x,y)
root.bind("<Button-1>",getorigin)
#Добавим изображение
canvas = Canvas(root, height=800, width=800)
image = Image.open("zoo1.jpg")
photo = ImageTk.PhotoImage(image)
image = canvas.create_image(0, 0,image=photo,anchor='nw')
VOL1=canvas.create_oval(0,0,100,100)
canvas.pack()
root.mainloop()
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
Попробуйте так:
from tkinter import *
from PIL import Image, ImageTk
root = Tk()
x = None
y = None
def getorigin(event):
global x, y
x = event.x # !!!
y = event.y # !!!
# if (x >= 0 or x <= 100) and (y >= 0 or y <= 100):
if (0 <= x <= 100) and (0 <= y <= 100): # !!!
print(f'Вы попали в квадрат (0, 0) - (100, 100). X = {x}, Y = {y}')
root.bind("<Button-1>",getorigin)
#Добавим изображение
canvas = Canvas(root, height=800, width=800)
image = Image.open("lena.jpg")
photo = ImageTk.PhotoImage(image)
image = canvas.create_image(0, 0, image=photo, anchor='nw')
VOL1=canvas.create_oval(0, 0, 100, 100, outline="yellow", fill="#125B50", width=2)
canvas.pack()
root.mainloop()
