Does anyone know of a GUI design app that lets you choose/drag/drop the widgets, and then turn that layout into Python code with the appropriate Tkinter calls & arrangement using the
grid geometry manager? So far I’ve turned up a couple of pretty nice options that I may end up using, but they generate code using either
EDIT: Please note this is not to seek a “recommendation” per se, but rather it is a factual inquiry. I was asking whether or not such an app exists.
Before you say it: Yes, I know Tkinter is easy to learn, and Yes, I’ve found multiple online sources to help me do so, and I’m already on my way with that. This isn’t about avoiding the effort of learning, it’s about using the right tool for the job. I found out a long time ago that those drag-and-drop widget environments for coding program logic, are just too klunky and unmanageable when the project gets beyond a certain size — for bigger stuff, it’s just easier to build and maintain the logic when it’s in plain text. More recently I’ve found out that the reverse is true for designing a GUI. Writing text works up to a point, but when you have a main window with 30 or 40 widgets, plus a couple of side windows each with similar complexity, it goes much faster and easier if you can design it graphically rather than typing it all out.
On the other hand, you have PAGE that seems active and works in python 2.7 and py3k
As you indicate on your comment, none of these use the
grid geometry. As far as I can say the only GUI builder doing that could probably be Komodo Pro GUI Builder which was discontinued and made open source in ca. 2007. The code was located in the SpecTcl repository.
It seems to install fine on win7 although has not used it yet. This is an screenshot from my PC:
By the way, Rapyd Tk also had plans to implement grid geometry as in its documentation says it is not ready ‘yet’. Unfortunately it seems ‘nearly’ abandoned.
Apart from the options already given in other answers, there’s a current more active, recent and open-source project called
This is the first description by the author taken from the github repository:
Pygubu is a RAD tool to enable quick & easy development of user
interfaces for the python tkinter module.
The user interfaces designed are saved as XML, and by using the pygubu
builder these can be loaded by applications dynamically as needed.
Pygubu is inspired by Glade.
Pygubu hello world program is an introductory video explaining how to create a first project using
The following in an image of interface of the last version of
pygubu designer on a OS X Yosemite 10.10.2:
I would definitely give it a try, and contribute to its development.
The best tool for doing layouts using grid, IMHO, is graph paper and a pencil. I know you’re asking for some type of program, but it really does work. I’ve been doing Tk programming for a couple of decades so layout comes quite easily for me, yet I still break out graph paper when I have a complex GUI.
Another thing to think about is this: The real power of Tkinter geometry managers comes from using them together*. If you set out to use only grid, or only pack, you’re doing it wrong. Instead, design your GUI on paper first, then look for patterns that are best solved by one or the other. Pack is the right choice for certain types of layouts, and grid is the right choice for others. For a very small set of problems, place is the right choice. Don’t limit your thinking to using only one of the geometry managers.
* The only caveat to using both geometry managers is that you should only use one per container (a container can be any widget, but typically it will be a frame).