Сдвинуть кнопку при наведении курсора на неё

Вот в чём заключается задача: На Python нужно написать программу. Используя Tkinter нужно создать label по центру и по бокам 2 кнопки(side=TOP,LEFT,RIGHT), причём одна кнопка должна быть с особой command. Эта команда должна сделать следующее: при попадании курсора на кнопку - эта кнопка должна перескочить на другую координату, данный процесс должен быть циклическим. Другими словами пользователь не должен успевать нажимать на эту кнопку, но может нажать на другую (обездвиженную).Проблема именно в двигающейся кнопке. Надеюсь, что объяснил доходчиво. Заранее спасибо!


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

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

Как вариант, можно так:

def move_btn(btn):
    '''Функция двигает кнопку в левый верхний угол. '''
    btn.grid(row=0, column=0)

btn = Button(text='Бегающая кнопка')
btn.bind('<Enter>', lambda x: move_btn(btn))
→ Ссылка
Автор решения: Pavel

И так, спасибо предыдущим комментаторам, на просторах интернета наткнулся на подобную вещь, и всё-таки я думаю, что более рациональным будет сделать так:

import tkinter as tk
import random

def move():
    x = random.random()
    y = random.random()
    moving_button.place_configure(relx=x, rely=y)

root = tk.Tk()

moving_button = tk.Button(root, text='Click Me', command=move)

moving_button.place(relx=0.5, rely=0.5, anchor='center')

root.mainloop() 

Этот код имеет следующий функционал: при нажатии на кнопку она будет перескакивать в любую точку окна

→ Ссылка