Book Image

Tkinter GUI Programming by Example

Book Image

Tkinter GUI Programming by Example

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 (18 chapters)
Title Page
Copyright and Credits
Packt Upsell
Contributors
Preface
Index

Beginning our text editor


Before writing any code, be sure to make a new folder to hold the files for this chapter. Inside this folder, create a file called textarea.py. This file will hold the main part of our text editor—a subclass of the Text widget.

The Text widget is such as a textarea tag within HTML. It holds multiple lines of text and many formatting options. In the next chapter, we will see just how powerful this widget can be with the use of concepts like tags and indexing, which alter the text's appearance and give us control over certain regions of the text, allowing us to search all over the document within.

For now, we will just need a simple instance of the widget with a couple of configuration options set:

import tkinter as tk


class TextArea(tk.Text):
def __init__(self, master, **kwargs):
super().__init__(**kwargs)

self.master = master

self.config(wrap=tk.WORD)

Although initially short, this is all we need at the moment for our Text widget subclass.

After initializing the...