Сдвинуть кнопку при наведении курсора на неё
Вот в чём заключается задача: На Python нужно написать программу. Используя Tkinter нужно создать label по центру и по бокам 2 кнопки(side=TOP,LEFT,RIGHT), причём одна кнопка должна быть с особой command. Эта команда должна сделать следующее: при попадании курсора на кнопку - эта кнопка должна перескочить на другую координату, данный процесс должен быть циклическим. Другими словами пользователь не должен успевать нажимать на эту кнопку, но может нажать на другую (обездвиженную).Проблема именно в двигающейся кнопке. Надеюсь, что объяснил доходчиво. Заранее спасибо!
Ответы (2 шт):
Как вариант, можно так:
def move_btn(btn):
'''Функция двигает кнопку в левый верхний угол. '''
btn.grid(row=0, column=0)
btn = Button(text='Бегающая кнопка')
btn.bind('<Enter>', lambda x: move_btn(btn))
И так, спасибо предыдущим комментаторам, на просторах интернета наткнулся на подобную вещь, и всё-таки я думаю, что более рациональным будет сделать так:
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()
Этот код имеет следующий функционал: при нажатии на кнопку она будет перескакивать в любую точку окна