Python GUI Programming with Tkinter

Author:  Alan D. Moore
Publisher: Packt Publishing
Pages: 452
ISBN: 978-1788835886
Print: 1788835883
Kindle: B079HZPS7K
Audience: Python Programmers
Rating: 3
Reviewer: Alex Armstrong

Tkinter is Python's standard GUI toolkit and yet not everyone seems to think it's the one to go with. Can this book convince?

A language like Python needs a GUI framework because it is very likely to be used to create more than just command line or server programs. Tkinter is the GUI framework bundled with Python and it is the one that is used to create IDLE, the default Python IDE. Mind you IDLE isn't very impressive and this might be the reason why many look elsewhere for a GUI toolkit. The problem is that once you look beyond Tkinter you have to deal with licensing issues and which one to use can be a difficult decision. There is no doubt that if you just want to implement a fairly standard application with a few buttons and fields then Tkinter is worth considering and Python GUI Programming with Tkinter does a reasonable job of explaining how it all works.


Chapter 1 gets you started fairly quickly with a Hello World example. My only complaint is that it doesn't make enough of the idea of the event loop. Most beginners find it baffling that the main program just seems to end but the running program doesn't.

Chapter 2 is probably in the wrong place. If you are an eager beginner wanting to know about Tkinter then you probably don't want to read about designing a GUI complete with user requirements.


Chapter 3 gets more into using Tkinter with an example project you slowly work through the elments of building a form using the standard widgets. From here we start steady progress though the different features of Tkinter. - validation, structuring a big app, menus, dialogs, and styles and themes.

Chapter 9 breaks off the exploration of the core Tkinter and tackles how to stay cross platform - Windows, Mac and Linux. From here on the chapters deal with general programming tasks customized for Tkinter. Chapter 10 deals with testing, 11 with SQL; 12 with "the cloud", 13 is about asynchronous programming, 14 is about the Canvas widget and graphics and 15, the final chapter is on packaging your app.

I think I would rather have had more about asynchronous programming earlier as a Tkinter app is essentially, and unavoidably asynchronous. You may be able to avoid asynchronous issues when programming in general Python, but not when using Tkinter.

This is a book that explains Tkinter by example. If you are prepared to work your way through the examples you should end up knowing about Tkinter. However if you already know a GUI framework, even just HTML and JavaScript, then it is going to be a bit tedious. The book doesn't home in on the gotchas or the unexpected and unexplored regions of Tkinter. In particular, it doesn't say anything much about creating new custom widgets. Why fill the book with material on testing and so on when there are lots of directly Tkinter topics to cover? You also need to know that the book is heavily biased towards using MVC and "proper" approaches to coding. If you are going to be doing Tkinter projects professionally then this is a good feature, but it you are just trying to get to grips with the Tkinter library and what it can do for you then this will seem so much over-complication.

This is not a great book nor is it a bad book. For the right reader, steady, methodical and knowing enough Python and GUI principles, it would serve a purpose. If you want a rapid guide to the basic principles of Tkinter and have your attention drawn to anything difficult then you might want a different book - this one doesn't stray from the well worn path.


For recommendations of Python books see Books for Pythonistas and Python Books For Beginners in our Programmer's Bookshelf section. 

To keep up with our coverage of books for programmers, follow @bookwatchiprog on Twitter or subscribe to I Programmer's Books RSS feed for each day's new addition to Book Watch and for new reviews.


Classic Computer Science Problems in Python

Author: David Kopec
Publisher: Manning
Date: March 2019
Pages: 224
ISBN: 978-1617295980
Print: 1617295981
Kindle: ‎ ‎ B09782BT4Q
Level: Intermediate
Audience: Python developers
Category: Python
Rating: 4
Reviewer: Mike James
Classic algorithms in Python - the world's favourite language.

Assembly x64 Programming

Author: Mike McGrath
Publisher: Easy Steps
Date: November 2021
Pages: 192
ISBN: 978-1840789522
Print: 1840789522
Kindle: ‎B09FTNN4P5
Audience: Developers wanting to learn assembler
Rating: 5
Reviewer: Harry Fairhead
Assembler, why would you want to learn that!

More Reviews

Last Updated ( Thursday, 27 September 2018 )