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.


Quantum Computing for Everyone

Author: Chris Bernhardt
Publisher: MIT Press
ISBN: 978-0262039253
Print: 0262039257
Kindle: B07P7KN23F
Audience: People interested in quantum computing
Rating: 4
Reviewer: Mike James
Quantum computing for everyone is a tall order, can it be delivered?

Accelerating Software Quality

Author: Eran Kinsbruner
Publisher: Perforce
Pages: 357
ISBN: 978-8671126044
Print: B08FKW8B9B
Audience: Devops developers
Rating: 3
Reviewer: Kay Ewbank

With a subtitle of 'machine learning and artificial intelligence in the age of devops', this book certainly sounds as though it fits c [ ... ]

More Reviews

Last Updated ( Thursday, 27 September 2018 )