from tkinter import *
class Main_UI(Tk):
def __init__(self):
self.main_win = Tk()
self.main_win.title('Main_OLNA_ERP')
self.main_win.geometry('800x750+500+200')
self.Label_Main_win = Label(self.main_win, text = '主界面')
self.Label_Main_win.pack()
self.make_wait()
def make_wait(self):
# test1
#self.NewWin = Toplevel(self.main_win)
#self.NewWin.title('new_title')
#self.main_win.wait_window(self.NewWin)
#print('关闭新窗口后再打印')
# test2
NewWin2 = detail_UI()
self.main_win.wait_window(NewWin2)
print('关闭新窗口后再打印')
class detail_UI():
def __init__(self):
self.detail_win = Toplevel()
self.detail_win.title('detail_ERP')
self.detail_win.geometry('500x300+500+200')
self.Label_detail_win = Label(self.detail_win, text='关闭这个详细界面之后,再执行打印“关闭新窗口后再打印”')
self.Label_detail_win.pack()
if __name__ == '__main__':
main_UI = Main_UI()
main_UI.main_win.mainloop()
不是很清楚wait_window()方法怎么使用。
上面的test1,在主窗口上面创建一个新的窗口之后,导入到wait_window()里面,是可以正常使用的。当关闭新窗口之后,才执行打印。
不过在test2中,当实例化一个对象之后,把实例化的对象当作一个参数传给wait_window()的话,总是没有办法运行,提示AttributeError: 'detail_UI' object has no attribute '_w'。感觉应该是wait_window()前面的self.main_win有问题。可是试了好多方法,换了好多也都是不行。
现在就是想学习如果可以把实例化的对象当作参数传入给wait_window()。