从另一个脚本中调用主程序中的类

因为我的 python 脚本变得很大,所以我将它拆分为多个文件。然后我将needet文件导入到我的主文件中。


然后我想从包含的文件中打开一个在主文件中定义的类。但它总是告诉我主文件中定义的类没有定义。


这是主文件:


try:

     import Tkinter as tk

except ImportError:

     import tkinter as tk


try:

     import ttk

     py3 = False

except ImportError:

     import tkinter.ttk as ttk

     py3 = True



# page classes import   

from travel import PageTravel

from contact import PageContact

from dangers import PageDangers




#Main Window wird gestartet.

class PTools(tk.Tk):

    def __init__(self):

        tk.Tk.__init__(self)

        #self.geometry("%dx%d"%(self.winfo_screenwidth()-200,self.winfo_screenheight()-200))

        self._frame = None        

        self.switch_frame(StartPage)


    def switch_frame(self, frame_class):

        """Destroys current frame and replaces it with a new one."""

        new_frame = frame_class(self)

        if self._frame is not None:

            self._frame.destroy()

        self._frame = new_frame

        self._frame.pack(anchor='center')    



class StartPage(ttk.Frame):

    def __init__(self, master):      

        s=ttk.Style()

        s.theme_use('winnative')

        ttk.Frame.__init__(self, master)


        #Frames werden geöffnet.

        alles=ttk.Frame(self)

        alles.pack(padx=100)

        version=ttk.Frame(self)

        version.pack(anchor='e')



        self.button1 =ttk.Button(alles, text ="Test1",command=lambda: master.switch_frame(PageTravel),width=50) #command linked

        self.button1.pack()

        self.button2=ttk.Button(alles, text ="Test2",command=lambda: master.switch_frame(PageDangers),width=50)

        self.button2.pack()

        self.button4=ttk.Button(alles, text ="Test3",command=lambda: master.switch_frame(PageContact),width=50)

        self.button4.pack()


if __name__ == "__main__":

    app = PTools()

    app.mainloop()

如您所见,我导入了 PageTravel、PageContact 和 PageDanger。同样在这个定义中,我定义了类 StartPage。这是按下按钮时调用的 PageContact:

现在这是一个完全不同的文件,我可以调用它,因为我导入了它。然后我尝试通过再次调用“StartPage”返回到 MainPage。但在这里它告诉我起始页未知。


当我尝试导入起始页时


from mainfile import StartPage

它不起作用。



慕沐林林
浏览 196回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python