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 a graphical blackjack game


Note

In order to display images within our blackjack game, we need to obtain them first. If you are the arty kind, you can draw them yourself. I am not a great artist so I have chosen to acquire artwork online. The images used in the pictures in this book came from the Open Game Art website, and can be downloaded from https://opengameart.org/content/playing-cards-0.

As usual, we will begin our file with the necessary imports:

import os
import random
import tkinter as tk

This project will need three imports now:

  • os: To access the assets folder
  • random: To shuffle the Deck
  • tkinter: To use graphical features

We begin with a variable that will be used by multiple classes, and so is defined outside of the scope of a class, the assets_folder. We use the os module to construct the full path to our images so that this will work on multiple machines:

assets_folder = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', 'assets/'))

In this case, the images are stored...