What is the best WYSIWYG GUI editor for Python?
I'm looking for something like Visual Studio form designer.
The specific GUI toolkit doesn't matter. And I'm not looking for a code editor/IDE.
What is the best WYSIWYG GUI editor for Python?
I'm looking for something like Visual Studio form designer.
The specific GUI toolkit doesn't matter. And I'm not looking for a code editor/IDE.
wxPython ships with xrced. It's nothing like Visual Studio and it has a learning curve like a brick wall.
Once you're past that though it is remarkably productive. Also it's free.
I think "best" depends on your skill level and how you expect to use the tool. But let me propose another alternative than what you have in mind.
Personally, for a scripting language like Python I think the best WYSIWYG GUI editor is a pad of graph paper, a pencil, and a good text editor. I know this doesn't directly address your question but I want to give some food for thought.
A toolkit combined with a scripting language like python, perl or tcl is very easy to use at the coding level. Once you start using a GUI editor you can end up spending a disproportionately large amount of time clicking in boxes and typing short values for properties. If, on the other hand, you are in your editor of choice you can code up the properties for dozens of widgets in the time it takes you to edit just a few in a GUI editor.
Granted, the initial learning curve is a bit steeper than just pointing and clicking your way to a GUI, but if your long term goal is to become proficient at creating GUIs written in Python I doubt any WYSIWYG editor will hold a candle to learning the toolkit API and coding it by hand.
What I use these days is balsamiq mockup to do the design, and from that the GUI code to make that happen is relatively self-evident. If you're serious about GUI development you might want to give this approach some thought.
I find that WYSIWYG GUI never give you what you want.
First do your UI design on a piece of paper/whiteboard/photoshop. Then just implemented your design in code.
I found that wxPython is a very nice way to build Desktop user interfaces for Python.
Run the wxPython demo application it shows you 95% of the widget functionality in a program where you can see them run and the original source code side by side.
You could aways use PyQT and the QTtoolkit. It has a drag n' drop interface similar to VS.
http://www.riverbankcomputing.co.uk/software/pyqt/intro
and
Unfortunately QT is not free, unless you're using an open source license. So I'm not sure how useful this will be to you.
You may find a more complete answer on the GUI Programming Python Wiki page.
In summary, you have the standard set of cross-platform frameworks (Tkinter, Gtk, Qt, Glade, Wx, ...) with varied support for building GUIs. There is not a clear leading IDE with GUI design integrated. The best systems as of now seem to be Black Addr ($50-400), Gazpacho (clean, free app for Windows and Linux using Gtk), and uxPython (promising, but in Alpha).
Then you have python wrappers around native platform toolkits (Mac Cocoa or Windows Forms..). If you want to go this way, you could use IronPython Studio hooked up to control your Windows GUI or PyObjC to control your Interface Builder/Xcode GUI.
PythonCard is also an interesting alternative where the idea is to make GUI building somewhat like making Hypercard stacks.
Finally, there is a great GUI picker website with detailed descriptions of most of the toolkits and IDEs.
Eclipse with PyDev enables one to use Eclipse for Python and Jython development : code completion, syntax highlighting, syntax analysis, refactor, debug, pylint integration...
Komodo edit is lighter but a good editor to start with. And it works on Windows,Mac and Linux too.
Interface Builder is the best for creating Cocoa/Python apps.
What I am currently using is coding a server that exposes a JSON web service in Python. Then using .net and visual studio for the front end. Best of both worlds. You can also use Flash/Flex as front end.
You might also investigate Jython or IronPython.
You should take a look at Dabo. It features a full WYSIWYG GUI editor, along with several other visual tools, to make development of GUI apps simpler, so that you can focus on your application logic instead.
There are two screencasts available that demonstrate the Class Designer being used:
Building a Database Application using the Dabo Class Designer (Part 1)
Building a Database Application using the Dabo Class Designer (Part 2)
Disclaimer: I am one of the authors of the Dabo framework, and the creator of the Dabo Class Designer.
Boa Constructor.
Even though its homepage hasn't been changed since 2001 or so, it's being developed actively, and it's what i use now. To try boa you must download SVN version.
I'd go for Dabo if i needed bigger, DB & Business application. Dabo is a bit of an overkill for small/tiny apps., but it'll do the job. If dabo had a faster initialization timestamp, and lower memory footprint, it'd be my winning thing.
VisualWX doesn't incorporate event code editing. e.g., to tell your app what happens on a button click, you'd have to use a simple, external editor.
There are several others which take the above pattern, i.e. just designing GUI. But when you want e.g. to double-click a button into its code, it wouldn't, which is, IMHO, a big hassle and a drawback for rapid development of dynamically changed GUI apps.
Examples of gui-designers without a seemless event editor are:
All of the above mentioned have few or more bugs which are neglectable.
PythonCard comes with it's own WYSIWYG editor called "Layout Editor":
I've used it for many of my GUI construction needs with some tweaks in code as needed. It's worth checking out if you're willing to be restricted to PythonCard (and the way it hides most of the GUI code from you).
The best way to get started with PythonCard is to look at the samples that come with it.
Glade lets you design GUIs for the GTK+ toolkit, which has good Python bindings.