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

Adding a Thread to our ChatWindow


To get our ChatWindow class listening for new messages, we will use a thread to repeatedly poll our web service for messages which we haven't seen yet.

In order to determine what we have and have not already received, we will be using the date_sent column in our conversation table.

Before we can implement a threaded solution, some modifications need to be made to our database, server, and requester.

Creating new endpoints

The first thing we will need is the ability to select new messages from our conversation databases. We will need to provide the current user's username and the last time when we checked for messages. Our database will then return all new messages by a different author since the last time we checked for messages.

Open up your conversation.py file and add the following method to it:

def get_new_messages(self, timestamp, username):
    sql = "SELECT author, message FROM conversation WHERE date_sent > ? AND author <> ?"
    params = (timestamp...