Sign In Start Free Trial
Account

Add to playlist

Create a Playlist

Modal Close icon
You need to login to use this feature.
  • Book Overview & Buying Tkinter GUI Programming by Example
  • Table Of Contents Toc
  • Feedback & Rating feedback
Tkinter GUI Programming by Example

Tkinter GUI Programming by Example

By : David Love
1 (3)
close
close
Tkinter GUI Programming by Example

Tkinter GUI Programming by Example

1 (3)
By: David Love

Overview of this book

Tkinter is a modular, cross-platform application development toolkit for Python. When developing GUI-rich applications, the most important choices are which programming language(s) and which GUI framework to use. Python and Tkinter prove to be a great combination. This book will get you familiar with Tkinter by having you create fun and interactive projects. These projects have varying degrees of complexity. We'll start with a simple project, where you'll learn the fundamentals of GUI programming and the basics of working with a Tkinter application. After getting the basics right, we'll move on to creating a project of slightly increased complexity, such as a highly customizable Python editor. In the next project, we'll crank up the complexity level to create an instant messaging app. Toward the end, we'll discuss various ways of packaging our applications so that they can be shared and installed on other machines without the user having to learn how to install and run Python programs.
Table of Contents (13 chapters)
close
close

Getting text input

We now know how to get Boolean information from our user, but what if we want to get something more detailed, such as text?

Tkinter provides us with the perfect widget to do just this – Entry.

An Entry widget is a one-line text entry box which is put into a parent widget just like a Label or Button. The special Tkinter variables can be attached to an Entry to make getting the value out a breeze.

Why don't we add some personalization to our Hello World application? Grab your code and adjust it to the following:

class Window(tk.Tk):
def __init__(self):
super().__init__()
self.title("Hello Tkinter")
self.label_text = tk.StringVar()
self.label_text.set("My Name Is: ")

self.name_text = tk.StringVar()

self.label = tk.Label(self, textvar=self.label_text)
self.label.pack(fill=tk.BOTH, expand=1, padx=100, pady=10)

self.name_entry = tk.Entry(self, textvar=self.name_text)
self.name_entry.pack(fill=tk.BOTH, expand=1, padx=20, pady=20)

hello_button = tk.Button(self, text="Say Hello",
command=self.say_hello)
hello_button.pack(side=tk.LEFT, padx=(20, 0), pady=(0, 20))

goodbye_button = tk.Button(self, text="Say Goodbye",
command=self.say_goodbye)
goodbye_button.pack(side=tk.RIGHT, padx=(0, 20), pady=(0, 20))

If you run this version of the code, you will now see a text box in which to enter your name. As we enter our name in the Entry widget, its value is automatically assigned to the name_text StringVar thanks to the textvar keyword argument:

Our application now with an Entry widget

The buttons will still function the same, however, so let's do something about that:

def say_hello(self):
message = "Hello there " + self.name_entry.get()
msgbox.showinfo("Hello", message)

def say_goodbye(self):
if msgbox.askyesno("Close Window?", "Would you like to
close this window?"):
message = "Window will close in 2 seconds - goodybye " + self.name_text.get()
self.label_text.set(message)
self.after(2000, self.destroy)
else:
msgbox.showinfo("Not Closing", "Great! This window
will stay open.")

These functions demonstrate both of the ways we can now grab the value back out of our Entry widget. We can either call the get method of the Entry itself, or grab the value out of our StringVar (also with the get method).

If the Entry box itself is the only part of your application which will need to use its value, I would recommend just grabbing it directly via .get() and foregoing the use of a StringVar. If, however, its value will be needed by other parts of your application, using a StringVar is probably the best way. This allows you to use the set method to adjust its value programmatically.

Visually different images
CONTINUE READING
83
Tech Concepts
36
Programming languages
73
Tech Tools
Icon Unlimited access to the largest independent learning library in tech of over 8,000 expert-authored tech books and videos.
Icon Innovative learning tools, including AI book assistants, code context explainers, and text-to-speech.
Icon 50+ new titles added per month and exclusive early access to books as they are being written.
Tkinter GUI Programming by Example
notes
bookmark Notes and Bookmarks search Search in title playlist Add to playlist download Download options font-size Font size

Change the font size

margin-width Margin width

Change margin width

day-mode Day/Sepia/Night Modes

Change background colour

Close icon Search
Country selected

Close icon Your notes and bookmarks

Confirmation

Modal Close icon
claim successful

Buy this book with your credits?

Modal Close icon
Are you sure you want to buy this book with one of your credits?
Close
YES, BUY

Submit Your Feedback

Modal Close icon
Modal Close icon
Modal Close icon