我正在构建一个tkinter-window-maker,而我在父类中遇到'new_window'方法时遇到问题 . 我可以稍微修改它并将它复制粘贴到每个子类中它工作正常但它似乎效率低下,如果我把方法放在父类中(但是下面的代码)它会达到最大递归深度 . 怎么了?
码:
from tkinter import *
import sys
class Window():
def __init__(self, master, x, y, title):
self.master = master
master.title(title)
master.geometry("{}x{}".format(x,y))
def new_window(self, class_name):
self.master.destroy()
class_name = getattr(sys.modules[__name__], str(class_name))
root=Tk()
class_name(root)
root.mainloop()
class Login(Window):
def __init__(self, master):
super().__init__(master, 200, 200, "Login")
Button(master, text="NEXT",width=7,height=1,command=self.new_window("Home")).grid(row=1,column=1)
class Home(Window):
def __init__(self, master):
super().__init__(master, 200, 200, "Home")
Button(master, text="NEXT",width=7,height=1,command=self.new_window("Login")).grid(row=1,column=1)
def main():
root=Tk()
Login(root)
root.mainloop()
if __name__ == '__main__':
main()