Я создаю приложение tkinter, в котором я использую пользовательские изображения кнопок, а также пользовательский класс кнопок, чтобы кнопка имела эффект зависания. Сценарий работал нормально, когда изображения и сценарии находились в одной папке, однако, как только я попытался использовать модуль «os» или «path», python выдает мне эту ошибку.
"_ tkinter.TclError: image" N: \ Year 13 \ Computer Science \ Project \ AMFC \ Project files / Buttons / App button.gif "не существует"
Я убедился, что изображение на самом деле существует в пути, и я попытался построить путь, основываясь на «os.getcwd ()» и «os.path.join», а также на эквивалентном модуле «path». Я также попытался создать абсолютный путь к изображению, однако он все еще не работал.
work_folder = os.path.dirname(os.path.abspath(__file__))
button_path = os.path.join(work_folder, "Project files/Buttons")
Вот мой класс пользовательских кнопок:
class Button(tk.Button):
def __init__(self, parent, default_background="", hover_background="", **kwargs):
tk.Button.__init__(self, master=parent, **kwargs)
self.default_background = tk.PhotoImage(file=default_background)
self.hover_background = tk.PhotoImage(file=hover_background)
self.configure(image=self.default_background)
self.bind("<Enter>", self.on_enter)
self.bind("<Leave>", self.on_leave)
def on_enter(self, event):
self.configure(image=self.hover_background)
def on_leave(self, event):
self.configure(image=self.default_background)
Вот как я применяю it:
import Customised_Widgets as cw
cw.Button(self, text="Pure Core", default_background=os.path.join(button_path, "App button.gif"),
hover_background=os.path.join(button_path, "Project files/Buttons/App button(hover).gif"),
relief=tk.FLAT,highlightcolor="#E7E6E6",highlightbackground="#E7E6E6",
bg="#E7E6E6", bd=0, padx=0, pady=0, borderwidth=0,
highlightthickness=0, compound="center").place(x=434, y=270)
Я создал кнопку в отдельном модуле, чтобы моя работа была более организованной. Этот отдельный модуль находится в той же папке, что и основной скрипт.
Я не знаю, что делать, я попытался дать полный путь к изображению, но он все равно не работал. Он отказывается обнаружить изображение в папке, на которую я указываю tkinter, даже если оно существует ...
Любая помощь будет признательна.