Как изменить цвет кнопки при наведении курсора в Tkinter: несколько методов

Чтобы изменить цвет кнопки при наведении в Tkinter, вы можете использовать различные методы. Вот несколько подходов, которые вы можете использовать:

Метод 1: использование параметра кнопки «activebackground»

import tkinter as tk
def on_hover(event):
    button.config(bg="red")  # Change the background color when hovering
def on_leave(event):
    button.config(bg="SystemButtonFace")  # Change back to default color
root = tk.Tk()
button = tk.Button(root, text="Hover Me")
button.bind("<Enter>", on_hover)
button.bind("<Leave>", on_leave)
button.pack()
root.mainloop()

Метод 2: использование «стиля» кнопки с ttk

import tkinter as tk
from tkinter import ttk
def on_hover(event):
    style.map("TButton", background=[("active", "red")])  # Change the background color when hovering
def on_leave(event):
    style.map("TButton", background=[("active", "!disabled", "!focus", "!hover", "SystemButtonFace")])  # Change back to default color
root = tk.Tk()
style = ttk.Style()
style.configure("TButton", background="SystemButtonFace")  # Set default background color
button = ttk.Button(root, text="Hover Me", )
button.bind("<Enter>", on_hover)
button.bind("<Leave>", on_leave)
button.pack()
root.mainloop()

Метод 3: использование метода «Настройка» кнопки

import tkinter as tk
def on_hover(event):
    button.configure(bg="red")  # Change the background color when hovering
def on_leave(event):
    button.configure(bg="SystemButtonFace")  # Change back to default color
root = tk.Tk()
button = tk.Button(root, text="Hover Me")
button.bind("<Enter>", on_hover)
button.bind("<Leave>", on_leave)
button.pack()
root.mainloop()