我刚开始使用 tkinter,发现有一种使用 Figma 进行设计的好方法。但是,我在链接使用 Figma 创建的多个页面时遇到问题。我该怎么办?
将 Figma 设计转换为 tkinter 后,我尝试将页面从一个文件调用到另一个文件,但调用第二个页面时没有满足第一个页面的争论。可以说我正在尝试登录,我的下一个窗口应该是仪表板,如果我运行登录,仪表板也会在不输入凭据的情况下打开
这可能是因为框架是立即创建的,尝试在 mainappclass (或等效的)中设置一个函数,该函数销毁以前打开的框架并打开(创建)所需的框架,您的等效项:
frame_list = ["mainmenuframe","a1_deutsch_frame","translation_game_frame","game_over_frame","python_frame","blender_frame","unity_frame","cplus_frame","csharp_frame","java_frame","translator_frame"]
frame_window=[MainMenuFrame,A1DeutschFrame,TranslationGameFrame,GameOverFrame,PythonFrame,BlenderFrame,UnityFrame,CplusFrame,CsharpFrame,JavaFrame,TranslatorFrame]
def get_destination_frame(frame_name):
if frame_name in frame_list:
return frame_window[frame_list.index(frame_name)]
return 0
class MainApp(ctk.CTk):
def __init__(self):
super().__init__()
self.title('BX7 Gamer')
self.geometry('600x462')
self.frames = {}
self.main_frame =WelcomeFrame(master=self )#MainMenuFrame(self)#LoggedInFrame(self) TranslationGameFrame(self)GameOverFrame(self)#
self.main_frame.pack(expand=True, fill="both") # Expand to fill the main app window
def change_geometry(self, new_geometry):
# Change the window geometry
self.geometry(new_geometry)
def change_title(self,new_title):
self.title(new_title)
def change_apperance_mode(self):
if Myapp.apperance_mode == 'Dark':
ctk.set_appearance_mode('Light')
Myapp.apperance_mode = 'Light'
elif Myapp.apperance_mode == 'Light':
ctk.set_appearance_mode('Dark')
Myapp.apperance_mode = 'Dark'
else:
ctk.set_appearance_mode('System')
def open_frame(self,origin_frame,destination_frame):
if origin_frame == 'welcomeframe':
self.main_frame.destroy()
# Start logged in frame
self.mainmenuframe = MainMenuFrame(self,fg_color =mainmenu_colour.frame_darker)
self.frames["mainmenuframe"] = self.mainmenuframe
self.mainmenuframe.pack(expand=True, fill="both")
else:
self.main_frame.destroy()
self.frames[origin_frame].destroy()
self.destinationframe = get_destination_frame(destination_frame)(self)
self.frames[destination_frame] = self.destinationframe
self.destinationframe.pack(expand=True,fill='both')