Форум сайта python.su
Программа должна определять координаты курсора при нажатии на экран правой кнопкой мыши, предполагается многограктный вывод информации на экран. Если нажатий несколько, то почему-то результаты чередуются (от первых значений к последним), хотя сначала должны были отображаться первоначальные результаты, потом последующие, без возврата к началу.
Вот код:
from tkinter import* root=Tk() root.title ('Проверка') c = Canvas(width=2250, height=2250,bg='green') c.pack() def sdvig(event): x = root.winfo_pointerx() y = root.winfo_pointery() c=event.widget coord_x=c.canvasx(event.x) coord_y=c.canvasy(event.y) def opred(): print(coord_x,coord_y) c.after(10,opred) c.after(10,opred) c.bind('<Button-3>',sdvig) root.mainloop()
Офлайн
#!/usr/bin/env python3 from tkinter import * root=Tk() root.title ('Проверка') c = Canvas(width=2250, height=2250,bg='green') c.pack() def sdvig(event): x = root.winfo_pointerx() y = root.winfo_pointery() c=event.widget coord_x=c.canvasx(event.x) coord_y=c.canvasy(event.y) def opred(): print(coord_x,coord_y) #c.after(10,opred) c.after(10,opred) c.bind('<Button-3>',sdvig) root.mainloop()
Офлайн
Но при этом результат выводится однократно, а мне нужно, чтобы многократно. Предполагается, что на экран должна постоянно выводиться информация о последних координатах курсора, то есть после первого нажатия на экран несколько раз появляется информация о первых координатах, после второго нажатия - уже о вторых, первые не выводятся.
Офлайн
Konstantin1984+
Предполагается, что на экран должна постоянно выводиться информация о последних координатах курсора, то есть после первого нажатия на экран несколько раз появляется информация о первых координатах, после второго нажатия - уже о вторых, первые не выводятся.
#!/usr/bin/env python3 from tkinter import * root=Tk() root.title ('Проверка') c = Canvas(width=2250, height=2250,bg='green') c.pack() coord_x = None coord_y = None def sdvig(event): global coord_x global coord_y x = root.winfo_pointerx() y = root.winfo_pointery() c=event.widget coord_x=c.canvasx(event.x) coord_y=c.canvasy(event.y) def opred(): print(coord_x,coord_y) c.after(10,opred) c.after(10,opred) c.bind('<Button-3>',sdvig) root.mainloop()
Отредактировано py.user.next (Июнь 4, 2025 15:44:28)
Офлайн
Спасибо! Заработало.
Офлайн