from tkinter import *
windows = Tk()
windows.geometry("500x300")
windows.title("主窗口")
def b():
windows.withdraw() #隐藏主窗口
global root
root = Tk()
root.geometry("500x300")
root.title("副窗口")
Button(root,text="返回主窗口",command=show).pack(pady=50)
Label(root, text="三国两晋南北朝").pack()
Entry(root, show="").pack()
root.focus_force() #新窗口获得焦点
root.mainloop()
def show():
windows.update()
windows.deiconify() #显示主窗口
root.destroy()
Button(windows,text="打开一个新窗口", command=b).pack(pady=50)
Label(windows,text="我爱python").pack()
Entry(windows,show="").pack()
windows.mainloop()
功能说明:主窗口和副窗口的一个隐藏和切换,要注意在主窗口中放置了一个文本框,隐藏后输入的内容还是在的,使用destroy()就是关闭,副窗口中输入的内容就不在了,可以对比下。
思考一下:那我要让副窗口也隐藏,保持副窗口的文本输入内容不丢失该怎么操作呢?
代码如下:思路就是新建窗口后,把新建窗口按钮隐藏掉,显示切换的按钮,达到在主副窗口隐藏与显示之间切换
from tkinter import *
windows = Tk()
windows.geometry("500x300")
windows.title("主窗口")
def b():
windows.withdraw() #隐藏主窗口
global root
root = Tk()
root.geometry("500x300")
root.title("副窗口")
Button(root,text="返回主窗口",command=show).pack(pady=50)
b2.pack(pady=50)
Label(root, text="三国两晋南北朝").pack()
Entry(root, show="").pack()
root.focus_force() #新窗口获得焦点
root.mainloop()
def show():
windows.update()
windows.deiconify() #显示主窗口
root.withdraw()
b1.pack_forget()
def c():
root.update()
root.deiconify()
windows.withdraw()
b1 = Button(windows,text="打开一个新窗口", command=b)
b1.pack()
b2 = Button(windows,text="打开副窗口", command=c)
b2.pack_forget()
Label(windows,text="我爱python").pack(pady=50)
Entry(windows,show="").pack()
windows.mainloop()