HashikaNaidu / pythonpractise

PYTHON GUI PROJECT _ BASIC
0 stars 0 forks source link

Tkinter #1

Open HashikaNaidu opened 1 year ago

HashikaNaidu commented 1 year ago
import tkinter #for GUI 
from tkinter import ttk

def enter_data():
    firstname = first_name_entry.get() #get the content of the entry
    lastname = last_name_entry.get()
    nationality = nationality_combobox.get()
    age = age_spinbox.get()
    title = title_combobox.get()

    print("FirstName:", firstname)
    print("LastName:", lastname)
    print("Nationality", nationality)
    print("Age:", age) 
    print("Title", title)

window = tkinter.Tk()# parent window for all widgets -> ROOT WINDOW
window.title("Basic Data Entry Form") #title for the window

frame = tkinter.Frame(window) #create frame inside hte window
frame.pack()

user_info_frame = tkinter.LabelFrame(frame,text ="User Info" ) # for saving user info
user_info_frame.grid(row = 0, column = 0)

first_name_label = tkinter.Label(user_info_frame, text = "First Name")
first_name_label.grid(row =0, column =0)

last_name_label = tkinter.Label(user_info_frame, text = "Last Name")
last_name_label.grid(row =0, column =1)

#adding entries to FN, LN

first_name_entry = tkinter.Entry(user_info_frame)
last_name_entry = tkinter.Entry(user_info_frame)
first_name_entry.grid(row=1,column=0)
last_name_entry.grid(row=1,column=1)

#Row 0
#list 
title_label = tkinter.Label(user_info_frame, text = "Title") 
# we need ttk - themed tkinter - import it
title_combobox = ttk.Combobox(user_info_frame, values = ["","Ms.","Mr."])
title_label.grid(row=0,column =2)
title_combobox.grid(row=1,column =2)

#Row 1

age_label = tkinter.Label(user_info_frame, text = "Age")
age_spinbox = tkinter.Spinbox(user_info_frame)
age_label.grid(row=2,column =0)
age_spinbox.grid(row=3,column =0)

nationality_label = tkinter.Label(user_info_frame, text = "Nationality")
nationality_combobox = ttk.Combobox(user_info_frame, values= ["India","US"])
nationality_label.grid(row=2,column =1)
nationality_combobox.grid(row=3,column =1)                   

#spacing for all grids at a time
for widget in user_info_frame.winfo_children():
    widget.grid_configure(padx = 10, pady =5)

#accept terms
terms_frame = tkinter.LabelFrame(frame, text = "Terms and Conditions")
terms_frame.grid(row = 2, column = 0, sticky ="news", padx = 20, pady = 15)  

terms_check = tkinter.Checkbutton(terms_frame, text = "I accept the terms and conditions")
terms_check.grid(row =0, column = 0) 

#Button

button = tkinter.Button(frame, text = "enter data", command = enter_data)  
button.grid(row = 3, column = 0, sticky = "news", padx = 20, pady = 15)

window.mainloop()