Я написал класс в python tkinter, который вы можете использовать для создания кнопок, которые изменяют свои изображения при событиях выхода, ввода и кнопки-1.
Сценарий:
from tkinter import *
class ImageButton:
def CreateButton(self, image, root):
# --- image setup ---
self.ImageName = image
self.ButtonRoot = root
self.normal = PhotoImage(file="Images/" + self.ImageName + "/normal.png")
self.hover = PhotoImage(file="Images/" + self.ImageName + "/hover.png")
self.clicked = PhotoImage(file="Images/" + self.ImageName + "/clicked.png")
# --- button setup ---
self.Button = Button(self.ButtonRoot, image=self.normal)
self.Button.bind("<Leave>", self.normal_event)
self.Button.bind("<Enter>", self.hover_event)
self.Button.bind("<Button-1>", self.click_event)
return self.Button
def normal_event(self, event):
self.Button.config(image=self.normal)
def hover_event(self, event):
self.Button.config(image=self.hover)
def click_event(self, event):
self.Button.config(image=self.clicked)
Root = Tk()
Image = ImageButton()
FirstButton = Image.CreateButton("scann_device", Root)
FirstButton.grid(row=0, column=0)
SecondButton = Image.CreateButton("get_device_info", Root)
SecondButton.grid(row=1, column=0)
Root.mainloop()
Итакесли вы создадите кнопку с этим классом, вы можете делать все, что захотите.Это только связывает это с событиями, которые я упоминал выше.Если вы создаете 1 кнопку, она работает, и вы видите ее в своем окне, но если вы создаете 2 кнопки и сетку / упаковываете их, это не сработает.Похоже это .Вторая кнопка также получает хитбокс первой кнопки.