【问题标题】:how to Divide class based frames in tkinter frames into different python files [duplicate]如何将tkinter帧中基于类的帧划分为不同的python文件[重复]
【发布时间】:2021-10-25 03:53:58
【问题描述】:

我有一个 tkinter 应用程序,它分为许多类(tkinter 中的框架),程序已经变成 1000 多行,现在我想把它分成不同的文件,谁能指导我如何实现这一点。

我的代码是这样的

class tkinterApp(tk.Tk):  #this is the class which make navigation pages possible 
    def __init__(self, *args, **kwargs):
        tk.Tk.__init__(self, *args, **kwargs)

        container = tk.Frame(self)
        container.pack(side="top", fill="both", expand=True)

        self.frames = {}
        self.attributes('-fullscreen', True)

        for F in (StartPage, connect_page, login_page, signup_page, dashboard_page,trip_page,destination_reached_page):
            frame = F(container, self)
            self.frames[F] = frame
            frame.grid(row=0, column=0, sticky="nsew")
        self.show_frame(StartPage)

    def show_frame(self, cont):
        frame = self.frames[cont]
        frame.tkraise()

class StartPage(tk.Frame):
    def __init__(self, parent, controller):
        tk.Frame.__init__(self, parent)
        #some code .....

class connect_page(tk.Frame):
    def __init__(self, parent, controller):
        tk.Frame.__init__(self, parent)
        #some page...

#more classes like this ........

我想把页面分成不同的python文件和主类tkinterApp 如果如何,在不同的文件中这可能吗?

【问题讨论】:

    标签: python tkinter


    【解决方案1】:

    只需将类和它需要的所有导入剪切/粘贴到另一个文件中,然后导入它。

    # start_page.py
    
    import tkinter as tk
    
    class StartPage(tk.Frame):
        def __init__(self, parent, controller):
            tk.Frame.__init__(self, parent)
            #some code .....
    

    然后在你的主文件中:

    #!/usr/bin/env python3
    
    # main_program.py
    
    from start_page import StartPage
    
    # rest of your code
    

    附带说明,1000 多行并不是那么大,也并不罕见。您可能需要阅读 IDE 的代码导航功能。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-07
      • 2021-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多