使用figma设计tkinter

问题描述 投票:0回答:1

我刚开始使用 tkinter,发现有一种使用 Figma 进行设计的好方法。但是,我在链接使用 Figma 创建的多个页面时遇到问题。我该怎么办?

将 Figma 设计转换为 tkinter 后,我尝试将页面从一个文件调用到另一个文件,但调用第二个页面时没有满足第一个页面的争论。可以说我正在尝试登录,我的下一个窗口应该是仪表板,如果我运行登录,仪表板也会在不输入凭据的情况下打开

python tkinter figma
1个回答
0
投票

这可能是因为框架是立即创建的,尝试在 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')
    
© www.soinside.com 2019 - 2024. All rights reserved.