Я делаю графический интерфейс и в своей функции def Makewindow()
я делаю различные ярлыки, которые хочу, но я также хочу, чтобы они были кликабельными. Однако проблема в том, что я хочу сделать анимированный Line_icon
при нажатии другой вкладки, такой как Display_icon
или Settings_icon
. Я просто хочу, чтобы он скользил до метки (в данном случае это изображение с надписью «Дисплей») и наоборот для значка настроек.
Вот мой код:
from tkinter import * # Import the tkinter module (For the Graphical User Interface)
from PIL import ImageTk, Image # PILLOW for image formatting
width = 1920
height = 1080
RootGeo = str(width) + "x" + str(height) # Make a def for RootGeo so the Root geometry isn't hardcoded
def Display_Click(event):
print("[DISPLAY_CLICK] [INFO] [DEBUG] Display_icon has been clicked.")
def Settings_click(event):
print("[SETTINGS_CLICK] [INFO] [DEBUG] Settings_icon has been clicked.")
def PicDir(PictureName):
__DIRECTORY__ = "C:\\Users\\Gotta\\PythonProjects\\AutoCam\\Icons\\"
__PICTURE_DIRECTORY__ = __DIRECTORY__ + PictureName
print("[PICDIR] [INFO] [DEBUG] Photo Directory: ", __PICTURE_DIRECTORY__)
return __PICTURE_DIRECTORY__
def MakeWindow():
# -----Root_Attributes-----
Root = Tk()
Root.geometry(RootGeo)
Root.state("zoomed")
# -----Root_Attributes, Root_Containers-----
SETTINGS = Image.open(PicDir("Settings.png"))
SETTINGS_RENDER = ImageTk.PhotoImage(SETTINGS)
Settings_icon = Label(Root, image=SETTINGS_RENDER)
Settings_icon.grid(column=0, row=0, padx=(5, 5), pady=(3, 0))
Settings_icon.bind("<ButtonRelease>", Settings_click)
DISPLAY = Image.open(PicDir("Display.png"))
DISPLAY_RENDER = ImageTk.PhotoImage(DISPLAY)
Display_icon = Label(Root, image=DISPLAY_RENDER)
Display_icon.grid(column=1, row=0, padx=(0, 5), pady=(3, 0))
Display_icon.bind("<ButtonRelease>", Settings_click)
LINE = Image.open(PicDir("Line.png"))
LINE_RENDER = ImageTk.PhotoImage(LINE)
Line_icon = Label(Root, image=LINE_RENDER)
Line_icon.grid(column=0, row=1)
'''RUN COMMAND: py -3 tkinkertest.py'''
# -----Root_Containers----- ### NOT WORKING ###
Root.mainloop()
MakeWindow()