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

Handling files


We have already covered the usual handling of files in Python when parsing our yaml configurations. The basic syntax is as follows:

with open("path/to/file/", "r") as file:
    file.read()

with open("path/to/file", "w") as file:
    file.write("file contents")

This is very easy to do when we have a file path we are defining ourselves. The problem comes when we want the user to be able to open any file, and save a new file to any location on their computer. In this case we do not have the exact path, and it isn't very user-friendly to expect the user to be able to type in the full path either.

Luckily, Tkinter has a module thatcomes to our aid in this situation: filedialog. The filedialog module comes with a few different methods that allow us to easily get full paths to files, both for opening existing files and saving new ones, all with a user-friendly GUI.

We will be using two functions in this module for our text editor:

  • askopenfilename: This asks the user for an existing file...