My only experience with tcl is through tkinter but out of all the GUIs I've ever written code in, it's the one I prefer. Strange way to learn a language, that. The only complete documentation is on the tcl side of things, so you have to switch between partial docs on the python.org site, partial (and opinionated) docs elsewhere, the only good site is now defunct, and so yeah, if you are determined to figure out tkinter you have to rely on docs in another language and then just -- I don't know how to say this, do the obvious thing, whatever seems most pythonic, most lazy, that is basically how it is intended to be used. Case in point: The way you that you hook up a stringvar to a listbox -- to have multiple items, you just ... set the string to a list. Or put newlines in the string. Simple stuff like that, or the ease with which you can make a simple interface with buttons whose command doesn't have to live in three different locations, you can just write a lambda and be done... but wait! That's how you're supposed to do it? It's not breaking rules? My curiosity about this tcl thing has been growing over the years, and I think this article has given me the push to actually try it on its own.