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

Tkinter's event system


Each time the user interacts with a program in some way—usually via the use of a mouse and keyboard—an event is sent to the application. It is these events that cause things to happen, such as the letters appearing on my screen as I press keys on the keyboard while writing this book.

Tkinter's widgets have a default behavior for certain keys, and the operating system you are using will have default behaviors too. For example, Alt + F4 will close the active window on a lot of operating systems, unless specifically unbound from this action.

When writing an application using Tkinter, there is a very simple and succinct API which allows the programmer to listen for keyboard presses or mouse movement and execute code in response. 

Binding an event

The basic format of an event binding is as follows:

widget.bind('<Event-String>', function_name)

Each widget has the ability to listen to the system for one of many event types. Each event type has a particular string defined...