Как сделать так, чтобы объект менял положение если на него навести курсор?

В моем случае кнопка, при наведении у меня происходит однократное перемещение , опосля он при наведении не меняет позицию. Ошибок нет, но я думаю что чего-то не хватает, но не знаю чего...

import tkinter as tk
import random as rand

window = tk.Tk()
window.title('')
window.geometry('300x300')


def on_enter(event):
    button.place(x=x, y=y)


x = rand.randint(0, 283)
y = rand.randint(0, 283)

button = tk.Button(window, text='Move')
button.place(x=0, y=0)

button.bind('<Enter>', on_enter)

window.mainloop()

Ответы (1 шт):

Автор решения: insolor

Переменные x и y у вас инициализируются один раз при старте программы, поэтому при каждом наведении кнопка остается на одном и том же месте (перемещается на одно и то же место).

Нужно сделать, чтобы при каждом наведении на кнопку получались новые случайные координаты, для этого перенесите инициализацию переменных x и y в обработчик события наведения:

def on_enter(event):
    x = rand.randint(0, 283)
    y = rand.randint(0, 283)
    button.place(x=x, y=y)
→ Ссылка