因为我的 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
它不起作用。
相关分类