«Tkinter «Toplevel
We will pass user entered data in one Entry area of child window. On click of button the user entered data will be passed to parent window and displayed as one existing string variable.
Passing data between child and parent window in Tkinter Toplevel
You can read basics of Parent and Child window here
We are using one string variable in parent window and assigned a string to it. In child window on click of a button the text entered at Entry box will transfer to parent window.
import tkinter as tk
from tkinter import *
my_w = tk.Tk()
my_w.geometry("200x200") # Size of the window
my_w.title("www.plus2net.com") # Adding a title
# create one lebel
my_str = tk.StringVar()
l1 = tk.Label(my_w, textvariable=my_str )
l1.grid(row=1,column=2)
my_str.set("Hi I am main window")
# add one button
b1 = tk.Button(my_w, text='Clik me to open new window',
command=lambda:my_open())
b1.grid(row=2,column=2)
def my_open():
my_w_child=Toplevel(my_w) # Child window
my_w_child.geometry("250x200") # Size of the window
my_w_child.title("www.plus2net.com")
l1 = tk.Label(my_w_child, text='Your Name', width=10 )
l1.grid(row=1,column=1)
e1 = tk.Entry(my_w_child, width=20,bg='yellow')
e1.grid(row=1,column=2)
b2 = tk.Button(my_w_child, text='Submit',
command=lambda:my_str.set(e1.get()))
b2.grid(row=2,column=2)
b3 = tk.Button(my_w_child, text=' Close Child',
command=my_w_child.destroy)
b3.grid(row=3,column=2)
my_w.mainloop()
We will place one Entry widget ( e2 ) at Parent window and while opening the child window the data entered inside the Entry widget will be displayed in the child window ( l3 ).
We will keep the Label at child window and it will read the data entered at Entry box of parent window