繁体   English   中英

如何将 tkinter 框架中基于类的框架划分为不同的 python 文件

[英]how to Divide class based frames in tkinter frames into different python files

我有一个 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如果如何?

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

# 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 的代码导航功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM