views:

4134

answers:

6

I've had a little experience developing small command-line apps with Python, I want to move on to developing GUI's with Python, from all the GUI frameworks for Python the ones I feel most inclined to are wxPython and Tkinter but I don't want to code all the GUI by myself at this time.

Is there any good GUI IDE for any of this frameworks? It doesn't need to be free or open source as I'm willing to pay, as long as it's worth the money.

+5  A: 

I will talk only about WxPython because it's the only toolkit I have experience with. TkInter is nice to write small programs (then it doesn't require a GUI Designer), but is not really appropriate for large application development.

  • wxFormBuilder is really good. But it generates only .XRC files you need to load in your program. And this becomes a little tricky.
  • DialogBlocks and wxDesigner are two commercial software which can generate Python code directly. I didn't tested these much because of their price.
  • wxGlade is I think not yet mature enough for large programs, but it's worth a try.

After trying all these, I realized they had all flaws and that nothing is better than just writing the GUI in an editor. The problem is the extended learning curve. But then you will be much more faster and your code will be much more flexible than when using a GUI designer.

Have a look at this list of major applications written with wxpython. You will probably see that none of these use a GUI Designer, there must be a reason for this. You then understand gs is right when saying that either you switch to PyQt or you write your application by hand. I had a look at Qt Designer in the past and thought this was what I needed. Unfortunately I PyQt has some license restrictions.

Mapad
A: 

I've used wxGlade for a few mission-critical apps. If you're a little weak in wx, it can be rough, but once you get used to it, its a great tool.

Alex
+6  A: 

This may not answer your question directly, but I chose PyQt because there were no good UI designers for wxPython.

It seems like either you write your UIs by hand or switch to PyQt.

Update
Because Nokia and Riverbankcomputing couldn't agree on a LGPL solution Nokia decided to build its own bindings: PySide.

Georg
+1 Qt Designer is the program that made me hate UI designers less. Also, the PyQt bindings seem slightly more Pythonic, the wx ones seem to have bits of C++ sticking out too much. (For instance the integer event/action IDs.)Another thing is that using the generated code and resource files loaded at runtime is mostly analogous. It doesn't hurt that the generated code is very neat and pretty much what you'd write yourself either.
Sii
Does PyQt support native look and feel to Win/Mac/Linux?
Alix Axel
Georg
@gs: Arguably the library replicates a lot of what other Python libraries do sometimes better.@eyze: http://doc.trolltech.com/4.4/winsystem.html is a good starting point to find about native integration and deployment.
Sii
+1  A: 

I use xrced (comes with wxPython). The GUI is defined in xml files, you have an autogenerated python file that automates some initialization then you subclass those autogenerated classes and do the rest of the initialization by hand. I find that this is a good way to blend the elegance of hand-written GUI code with ease of GUI code generation.

For the code I use WingIDE, it's helpfull to have a good debuger and good source code completion when dealing with large libraries (or frameworks if you will) like wxPython.

If you want more automation (and so, uglier code) try the latest version of Boa, there are some nice introductory screencasts for it at ShowMeDo.com

Toni Ruža
Elegance of hand-written GUI???????
Georg
Well, if one does it right... ;)
Toni Ruža
A: 

Try VisualWx. I think the GUI designer is very good; however the IDE is fairly rudimentary (no code completion, debugging, etc.). My work pattern is to have VisualWx and a good editor like Komodo Edit/Netbeans/etc. open at the same time and switch between them as needed.

Brandon Corfman
VisualWX looks cool, but is it still active? The web site shows an alpha version from April 2007, and there's only 5 messages in the forum over the last six months.
Chris Wuestefeld
I've used it to build configuration dialogs for a game I wrote, and it worked well for that. If you want the bleeding edge stuff from new wxWindows versions, then it probably won't serve your purposes. But it worked well for me for the things I tried, it's free, and the current version seems stable (unlike Boa Constructor, for instance). My advice is to simply try it and see what you think.
Brandon Corfman
+3  A: 

Boa Constructor has a WxPython GUI builder.

Anonymous
Boa constructor is an excellent piece of work, being like Delphi, but it relies on parsing Python auto-generated source code to keep track of what you designed. If you upgrade wxPython you'll have to hand edit your auto-generated code to make it work again (as various flags get added or things renamed between versions). This can been a real pain.
Nick