如何在Tkinter中创建子窗口并与父窗口通信?
与其他Python库不同,Tkinter具有许多功能,可用于创建一个完整的应用程序。它支持多个窗口操作和线程,以在Windows上处理操作。
接下来,我们将创建一个应用程序,该应用程序将从根窗口中提取数据并将其放入子窗口中。子窗口的概念可以被称为对话框,它在事件发生期间向用户呈现一些信息。在Tkinter中,使用 Toplevel(root) 构造函数非常容易创建子窗口。
示例
在此示例中,我们将在主窗口中创建一个输入小部件和一个按钮。然后,通过显示输入值的按钮,将存储在输入小部件中的数据提取到新窗口或子窗口中。
#导入tkinter库
from tkinter import *
from tkinter import ttk
#创建tkinter帧或窗口的实例
win= Tk()
#设置tkinter帧的几何形状
win.geometry("750x250")
win.title("Main Window")
#定义一个打开新窗口的函数
def open_win():
child_win= Toplevel(win)
child_win.title("Child Window")
child_win.geometry("750x250")
content= entry.get()
Label(child_win, text=content, font=('Bell MT', 20, 'bold')).pack()
win.withdraw()
#创建一个输入小部件
entry=ttk.Entry(win, width= 40)
entry.pack(ipady=4,pady=20)
#在主窗口中创建一个按钮
button= ttk.Button(win, text="OK",command=open_win)
button.pack(pady=20)
win.mainloop()
输出
当我们执行以上代码时,它会显示一个带有输入小部件和按钮的窗口,用于打开新窗口。
在输入小部件中输入一些内容,然后单击OK按钮,