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

Creating our SmilieSelect class


We are going to pop up a small windowthat contains all available smileys as buttons. When the user clicks on one of these smiley buttons, the image will be inserted into their text_area.

Create a new Python file in your folder called smilieselect.py. In that file, begin with the following code:

import os
import tkinter as tk
import tkinter.ttk as ttk

class SmilieSelect(tk.Toplevel):
    smilies_dir = os.path.abspath(os.path.join(os.path.dirname(__file__),
                                  'smilies/'))

Our application needs to keep track of where these images are stored on the filesystem, since multiple classes will need to access them. We achieve this by setting a class variable on the SmilieSelect window called smilies_dir.

The smiley images will be stored in a folder named smilies, which will live in the folder holding the rest of our scripts. Go ahead and create this folder now:

def __init__(self, master, **kwargs):
    super().__init__(**kwargs)
    self.master...