繁体   English   中英

在多个文件中导入 class

[英]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.

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