Nice IDE with GUI designer for wxPython or Tkinter

70,080

Solution 1

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: it generates .XRC files you need to load in your program, and it can generate .py files by subclassing them when you use.

  • 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 PyQt has some license restrictions.

Solution 2

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

Apparently you either write your GUIs by hand or switch to PyQt.

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

Solution 3

Boa Constructor has a WxPython GUI builder.

Solution 4

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

Solution 5

I use Eclipse with PyDev as my Python IDE (Which is probably not the best solution out there, but it is quite decent)

For GUI developement, I have used wxGlade for a mid-sized project and found it to be quite easy to use one you've grasped the concepts of WxPython. The XML generation is very useful for separating actual GUI design from program logic.

All of the these are free.

Share:
70,080
Alix Axel
Author by

Alix Axel

If you need to, you can contact me at: alix [dot] axel [at] gmail [dot] com. I'm #SOreadytohelp Some of my GitHub repositories: phunction, a minimalistic PHP HMVC Framework. halBox, bash script to bootstrap Debian/Ubuntu servers. ArrestDB, RESTful API for SQLite, MySQL and PostgreSQL databases. genex.js, Genex module for Node.js. If you know how to work with regexes, have a look at http://namegrep.com/. ;)

Updated on July 09, 2022

Comments

  • Alix Axel
    Alix Axel almost 2 years

    I have a little experience developing small command-line applications with Python. I want to move on to developing GUIs with Python. From the available GUI toolkits for Python, the ones I feel the most inclined to are wxPython and Tkinter; but I don't want to code all of the GUI by myself all of the time.

    Are there any good GUI IDEs for any of these toolkits? It doesn't need to be free or open source.

  • Montre
    Montre almost 15 years
    +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.
  • Stefan
    Stefan almost 15 years
    Elegance of hand-written GUI???????
  • Alix Axel
    Alix Axel almost 15 years
    Does PyQt support native look and feel to Win/Mac/Linux?
  • Stefan
    Stefan almost 15 years
    @ eyze: Partially. On Mac it uses the Carbon elements (they are porting it to Cocoa...) on Win they are switchting from custom elements (native look&feel) to true native widgets. On linux they paint custom elements, but the appearance can be changed for all Qt applications on a system. Another advantage of PyQt is its library, it's much more than only a GUI framework.
  • Toni Ruža
    Toni Ruža almost 15 years
    Well, if one does it right... ;)
  • Montre
    Montre almost 15 years
    @gs: Arguably the library replicates a lot of what other Python libraries do sometimes better. @eyze: doc.trolltech.com/4.4/winsystem.html is a good starting point to find about native integration and deployment.
  • Nick
    Nick over 14 years
    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.
  • mahendra rajeshirke
    mahendra rajeshirke over 14 years
    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.
  • Brandon
    Brandon over 14 years
    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.
  • rectangletangle
    rectangletangle almost 13 years
    If GUI code is done properly it's as elegant as any other code.
  • Russell Smith
    Russell Smith over 11 years
    How do you define "large application development", and why do you think tkinter is unsuitable? While I've never used it with a million+ line application, I think it scales about as well as wxPython.
  • Iancovici
    Iancovici over 10 years
    Still haven't figured out how to add python interperter to eclipse, that installation is def not idiot-proof. It got me!
  • Jacob Wang
    Jacob Wang over 10 years
    I don't use python interpreter that much so I can't help you there :P
  • Iancovici
    Iancovici over 10 years
    just realized you mentioned wxGlade, +1 for simple installation and friendly environment =)