Irrespective of number of Entry boxes we used in our application, we can remove all user entered data by using winfo_children() which returns all the widget classes of the Tkinter window.
Here is the code
for widget in my_w.winfo_children():
if isinstance(widget, tk.Entry): # If this is an Entry widget
widget.delete(0,'end') # Delete all entries
Using the above methods we will create one application where on Click of a button the data entered by the user in Entry box is displayed and default text is changed to Welcome.
def my_upd():
my_str.set(e1.get()) # read and assign text to StringVar()
e1_str.set('Welcome')# Update the Entry box text
Here on Click of the button the function my_upd() is executed. Inside this function we will first read the text entered by user and assign the same to another Label ( l2 ) .
In next line we will assign the string 'Welcome' to the StringVar() binded to Entry box ( e1 ).
import tkinter as tk
my_w = tk.Tk()
my_w.geometry("250x150")
my_w.title("plus2net.com") # Adding a title
l1 = tk.Label(my_w, text='Your Name', width=10 ) # added one Label
l1.grid(row=1,column=1)
e1_str=tk.StringVar()
e1 = tk.Entry(my_w,textvariable=e1_str,width=15) # added one Entry box
e1.grid(row=1,column=2)
b1 = tk.Button(my_w, text='Update', width=8,bg='yellow',
command=lambda: my_upd())
b1.grid(row=1,column=3)
my_str = tk.StringVar()
# added one Label
l2 = tk.Label(my_w, text='Output',textvariable=my_str, width=10 )
l2.grid(row=2,column=1)
def my_upd():
my_str.set(e1.get()) # read and assign text to StringVar()
e1_str.set('Welcome')# Update the Entry box text
my_w.mainloop()
We can change or manage different options by using config. One example is here .
e1.config(bg='red') # change background color to red
Similarly other properties can be updated. One similar list is available with Text entry.
Disable or Enable Entry widget
The option state takes three values enable , disabled & readonly
We can use the option validate to trigger validation of user input. This will take values focus, focusin,focusout,kye,all,none. How to Validate user entered data→
In practice we will frequently come across requirement of Entry text box. Most common requirements are listed here.
How to read the entered text.
How to delete the entered text.
How to configure the font colour and background colour of the text entry box.
Copy data from first entry box to second entry on button click or using trace method in Tkinter
We will create two Entry boxes. The first entry box e1 we will use to enter the data. On click of the Update button data from first entry box e1 will transfer to second entry box e2. One more button we will use to delete all data from second entry box e2.
By using two buttons we can change the font colour of second entry box e2 to green or red. Similarly by using two more buttons we can change the background colour of second entry box e2.
import tkinter as tk
my_w = tk.Tk()
from tkinter import *
my_w.geometry("250x150")
my_w.title("plus2net.com") # Adding a title
l1 = tk.Label(my_w, text='First' ) # added one Label
l1.grid(row=1,column=1)
e1_str=tk.StringVar()
e1 = tk.Entry(my_w,textvariable=e1_str) # added one Entry box
e1.grid(row=1,column=2)
l2 = tk.Label(my_w, text='Second' ) # added one Label
l2.grid(row=2,column=1)
e2_str=tk.StringVar()
e2 = tk.Entry(my_w,textvariable=e2_str) # added one Entry box
e2.grid(row=2,column=2)
b1 = tk.Button(my_w, text='Update', width=8,
command=lambda: my_upd())
b1.grid(row=3,column=1)
b2 = tk.Button(my_w, text='Reset', width=8,
command=lambda: my_reset())
b2.grid(row=3,column=2)
## buttons for changing font colour of Entries
b3 = tk.Button(my_w, text='fg=green', width=8,
command=lambda: my_config('fg','green'))
b3.grid(row=4,column=1)
b4 = tk.Button(my_w, text='fg=red', width=8,
command=lambda: my_config('fg','red'))
b4.grid(row=4,column=2)
b5 = tk.Button(my_w, text='bg=yellow', width=8,
command=lambda: my_config('bg','yellow'))
b5.grid(row=5,column=1)
b6 = tk.Button(my_w, text='bg=blue', width=8,
command=lambda: my_config('bg','blue'))
b6.grid(row=5,column=2)
def my_upd():
e2_str.set(e1.get()) # read and assign text to StringVar()
def my_reset():
e1.delete(0,END) # Delete first Entry
e2.delete(0,END) # Delete Second Entry
e1.config(bg='#ffffff',fg='#000000') # reset background
e2.config(bg='#ffffff',fg='#000000') # reset background
def my_config(type,col):
if type=='fg':
e1.config(fg=col)
e2.config(fg=col)
elif type=='bg':
e1.config(bg=col)
e2.config(bg=col)
my_w.mainloop()
from sqlalchemy import create_engine
# Connect to database using your user id and password
my_conn = create_engine("mysql+mysqldb://userid:password@localhost/database_name")
r_set = my_conn.execute("SELECT name FROM student WHERE id=6") # execute query
my_result = r_set.fetchone() # get the data
print(my_result[0]) # print to console
# Create Tkitner window and show the value
import tkinter as tk
my_w = tk.Tk()
my_w.geometry("250x150")
my_w.title("plus2net.com") # Adding a title
l1 = tk.Label(my_w, text="Your Name", width=10) # added one Label
l1.grid(row=1, column=1)
e1_str = tk.StringVar(value=my_result[0]) # default value taken from database
e1 = tk.Entry(my_w, width=20, bg="yellow", textvariable=e1_str) # added one Entry box
e1.grid(row=1, column=2)
my_w.mainloop()