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 context menu to our text editor


Once again we will need to add some code to our __init__ method. Since there will only be one Menu needed for our context menu we can just define this directly instead of making another function. Type this code underneath the previous menu code:

self.right_click_menu = tk.Menu(self, bg="lightgrey", fg="black", tearoff=0)
self.right_click_menu.add_command(label='Cut', command=self.edit_cut)
self.right_click_menu.add_command(label='Copy', command=self.edit_copy)
self.right_click_menu.add_command(label='Paste', command=self.edit_paste)

Another Menu widget is created using the same arguments as all of our cascades. We then add three commands to it—cut, copy, and paste. These will still do nothing at the moment, but first things first let's bind this menu to the right mouse button in our bind_events method:

def bind_events(self):
    ...
    self.text_area.bind("<Button-3>", self.show_right_click_menu)

Now let's define the methods that will allow our...