[英]Importing class in multiple files
I couldn't find a solution on google about that... So I'm programming in python a GUI where you have two windows: one main window and one temporary window which allows make some changes. 主要的 window 位于 main.py 中,另一个位于 tmp.py 中。 from the temporary window I want a button which allows me to go back to the main window.. this means that from tmp.py I have to call the window in main.py. 所以在 main.py 我有: import tmp
我认为 tmp.py put: import main 是不正确的,因为它会重新定义相同的 class ......所以你认为应该是正确的程序方式......我希望我让自己足够清楚不是很容易描述......这可能就是我无法在谷歌上找到解决方案的原因。
所以基本上代码应该是:在 main.py
import tkinter as tk
import tmp
class MainStr(tk.Tk):
def __init__(self):
tk.Tk.__init__(self)
self._frame = None
self.switch_frame(StartPage)
def switch_frame(self,frame_class):
new_frame = frame_class(self)
if self._frame is not None:
self._frame.destroy()
self._frame = new_frame
self._frame.pack()
class StartPage(tk.Frame):
def __init__(self,master):
tk.Frame.__init__(self,master)
chbtn = tk.Button(self,text='Tmp page',command=lambda:master.switch_frame(tmp.page))
chbtn.grid(column=0,row=0)
a = MainStr()
a.mainloop()
在 tmp.py
import tkinter as tk
import main
class page(tk.Frame):
def __init__(self,master):
tk.Frame.__init__(self,master)
chbtn = tk.Button(self,text='Home page',command=lambda:master.switch_frame(main.StartPage))
chbtn.grid(column=0,row=0)
非常感谢
我会创建一个名为startpage.py
的新文件并将您的 StartPage class 放入其中。 然后你可以从 main.py 和 tmp.py 导入 startpage.py。 完成后,您可以从 tmp.py 中删除import main
语句。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.