I've been working on transferring data into another window when the user types their info into the first box and then the info appears on the second window. I need help on using combobox to get it to the second window as I have it in the code here. When I select "male", it doesn't show up in the second window.
from tkinter import *
from tkinter import ttk
def submit(*args):
mainframe1.destroy()
full_name.set(last.get() + ", " + first.get() + " " + middle.get())
full_address.set(address.get() + "\n" + city.get() + " , " + state.get() + "\n" + zipcode.get())
mainframe2.grid(column=0, row=0)
root = Tk()
root.title("Basic Information Form")
root.columnconfigure(0, weight=1)
root.rowconfigure(0, weight=1)
mainframe1 = ttk.Frame(root, padding="5 5 5 5")
mainframe2 = ttk.Frame(root, padding="5 5 5 5")
first = StringVar()
middle = StringVar()
last = StringVar()
full_name = StringVar()
gender = StringVar()
phone_number = StringVar()
dob = StringVar()
address = StringVar()
city = StringVar()
state = StringVar()
full_address = StringVar()
zipcode = StringVar()
ttk.Label(mainframe1, text="First name: ").grid(column=0, row=0)
ttk.Label(mainframe1, text="Middle name: ").grid(column=0, row=1)
ttk.Label(mainframe1, text="Last Name: ").grid(column=0, row=2)
ttk.Label(mainframe1, text="Gender: ").grid(column=0, row=3)
ttk.Label(mainframe1, text="Date of Birth:").grid(column=0, row=4)
ttk.Label(mainframe1, text="Phone Number: ").grid(column=0, row=5)
ttk.Label(mainframe1, text="Address: ").grid(column=0, row=6)
ttk.Label(mainframe1, text="City: ").grid(column=0, row=7)
ttk.Label(mainframe1, text="State: ").grid(column=0, row=8)
ttk.Label(mainframe1, text="Zip Code: ").grid(column=0, row=9)
gender = ttk.Combobox(mainframe1, width=10, textvariable=gender, values=('Male', 'Female'))
gender.grid(row=3, column=1)
first_entry = ttk.Entry(mainframe1, width=20, textvariable=first)
middle_entry = ttk.Entry(mainframe1, width=20, textvariable=middle)
last_entry = ttk.Entry(mainframe1, width=20, textvariable=last)
dob_entry = ttk.Entry(mainframe1, width=20, textvariable= dob)
gender_entry = ttk.Entry(mainframe1, width=20, textvariable=phone_number)
address_entry = ttk.Entry(mainframe1, width=20, textvariable=address)
city_entry = ttk.Entry(mainframe1, width=20, textvariable=city)
state_entry = ttk.Entry(mainframe1, width=20, textvariable=state)
zipcode_entry = ttk.Entry(mainframe1, width=20, textvariable=zipcode)
first_entry.grid(column=1, row=0)
middle_entry.grid(column=1, row=1)
last_entry.grid(column=1, row=2)
dob_entry.grid(column=1, row=4)
gender_entry.grid(column=1, row=5)
address_entry.grid(column=1, row=6)
city_entry.grid(column=1, row=7)
state_entry.grid(column=1, row=8)
zipcode_entry.grid(column=1, row=9)
button = ttk.Button(mainframe1, text="Submit", command=submit)
button.grid(column=2, row=10)
ttk.Label(mainframe2, text="Name: ").grid(column=0, row=0)
ttk.Label(mainframe2, textvariable=full_name).grid(column=1, row=0)
ttk.Label(mainframe2, text="Date of Birth: ").grid(column=0, row=1)
ttk.Label(mainframe2, textvariable=dob).grid(column=1, row=1)
ttk.Label(mainframe2, text="Gender:").grid(column=0, row=2)
ttk.Label(mainframe2, textvariable=gender).grid(column=1, row=2)
ttk.Label(mainframe2, text="Phone Number:").grid(column=0, row= 3)
ttk.Label(mainframe2, textvariable=phone_number).grid(column=1, row=3)
ttk.Label(mainframe2, text="Address: ").grid(column=0, row=4)
ttk.Label(mainframe2, textvariable=full_address).grid(column=1, row=4)
mainframe1.grid(column=0, row=0)
root.mainloop()
You used same name gender
for the Combobox
widget and StringVar
. Change the name for Combobox
widget to gender_cb
:
gender_cb = ttk.Combobox(mainframe1, width=10, textvariable=gender, values=('Male', 'Female'))
gender_cb.grid(row=3, column=1)