我在Google上找不到关于此的解决方案... 所以我在python中用GUI编程,其中有两个窗口:一个主窗口和一个允许进行一些更改的临时窗口。主窗口位于main.py中,另一个位于tmp.py中。 从临时窗口中,我想要一个按钮,该按钮允许我返回主窗口。这意味着从tmp.py中,我必须在main.py中调用该窗口。 所以在main.py中,我有: 导入tmp
我认为tmp.py放置不正确: 进口主要 因为它将重新定义相同的类...所以您认为应该是正确的程序方式...我希望我自己已经足够清楚地描述起来并不那么容易...这可能就是为什么我无法做到这一点在Google上找到解决方案。
因此,基本上,代码应为: 在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)
非常感谢
答案 0 :(得分:2)
我将创建一个名为startpage.py
的新文件,并将您的StartPage类放入其中。然后,您可以从main.py和tmp.py导入startpage.py。完成此操作后,可以从tmp.py中删除import main
语句。