Python, Tkinter: как получить координаты на прокручиваемом холсте
У меня есть холст Tkinter с полосой прокрутки и некоторые элементы, которые, когда я нажимаю на них, он должен возвращать координаты. (С Использованием Python.)
Это прекрасно работает с объектами, которые изначально видны в окне. Однако, когда я прокручиваю вниз, и элементы дальше на холсте появляются в поле зрения, я не получаю их координаты холста при нажатии, а координаты окна.
Я не могу найти информацию о том, как получить абсолютные координаты, так что я интересно, знает ли кто-нибудь здесь, как это сделать?
спасибо.
1 ответов
проверьте документацию для виджета canvas здесь.
чтобы преобразовать координаты окна в координаты холста, используйте
canvasx
иcanvasy
методы.
вот пример функции обратного вызова, которая преобразует координаты X и y окна и печатает элемент, ближайший к этой позиции через find_closest()
метод.
def callback(event):
canvas = event.widget
x = canvas.canvasx(event.x)
y = canvas.canvasy(event.y)
print canvas.find_closest(x, y)