Я пытаюсь сделать так, чтобы при правильном пути к файлу он переключал фреймы в следующее меню. Проблема в том, что валидация выполняется только тогда, когда инициализируется класс frame. Помощь?
class PlaySong(tk.Frame):
def __init__(self, master):
tk.Frame.__init__(self, master)
tk.Label(self, text="Play Song").pack(side="top", fill="x", pady=10)
tk.Label (self,text= r"Enter in path of MIDI file (e.g C:\Users\etc.)").pack(side="top", fill="x", pady=10)
self.SongPath = tk.Entry(self)
self.SongPath.pack()
valid = False
self.enter = tk.Button(self, text="Enter path", command = lambda: valid == self.SongCheck)
self.enter.pack(pady=10)
tk.Button(self, text="Return to main menu",fg="red2", command=lambda: master.switch_frame(MainMenu)).pack(fill="x")
if valid == True:
master.switch_frame(PlaySongMixer)
def SongCheck(self):
path = self.SongPath.get()
try:
pygame.mixer.music.load(path)
except:
self.enter.config(text="Invalid path. Try again.")
else:
return True