Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

Is there a GUI IDE for programming python just like java has netbeans?

I wanted one where we could drag & drop test boxes & labels just as we do in swing components using netbeans or eclipse.

Or is there an add-on present in either netbeans or eclipse itself?

share|improve this question
    
Have you looked in the Ubuntu Software Center at some of the items listed under Developer Tools > Python ? –  WarriorIng64 Aug 8 '11 at 3:29
4  
I personally recommend trying to craft something by hand following a tutorial, because if you don't grasp how the elements you draw interact with each other, you'll have a hard time getting buttons to work and such. –  Ivo Flipse Aug 8 '11 at 11:30
1  
Note though that, for anything non-trivial, gtk apps that don't use glade or something similar will look fairly ugly and complicated very quickly. Even using glade, you will still have plenty of chances to learn about the pygtk api. –  Stefano Palazzo Aug 8 '11 at 21:31

8 Answers 8

Glade Install glade

If you want a wysiwyg GUI designer, Glade is your best bet:

  • first, install glade from the software centre
  • create your GUI, save it as, say, myapp.glade

    enter image description here

  • Go to the signals tab and set up your callback, such as on_window1_destroy

  • In your python program, tell GTK to load the UI definitions

    import gtk
    
    
    class MyApp (object):
    
        def __init__(self):
            self.builder = gtk.Builder()
            self.builder.add_from_file("myapp.glade")
            self.builder.connect_signals(self)
    
        def run(self):
            self.builder.get_object("window1").show_all()
            gtk.main()
    
        def on_window1_destroy(self, *args):
            gtk.main_quit()
    
    
    MyApp().run()
    

After getting everything set up, you can dive straight into the Glade tutorial (as Jeremy Kerr mentioned in his answer). Start by learning about the different lay–out options and signals.


Quickly Install quickly

When you feel comfortable with glade, you can start using it via Quickly, which is a set of programs to make the common tasks in developing software very easy. It takes care of translations, storing configuration, packaging, launchpad integration including PPAs, and lots more:

sudo apt-get install quickly
quickly create ubuntu-application hello-world
cd hello-world/

Quickly now creates a huge project with everything you need already set up. A gui, the translation files, configuration via desktopcouch, and so on.

You'll see quickly sets up a few windows (the main App, configuration, and an about dialogue) for you. To start editing your GUI:

  • run quickly design

    enter image description here

  • To get to the app's code, run quickly edit

  • Go to the HelloWorldWindow.py file

  • Now start adding signal handlers and logic.

Finally, to run your application, type quickly run.

At this point, you can get into the PyGTK documentation in order to learn about the signals, their handlers' signatures, the different widgets' methods and so on.


See also, some related questions:

share|improve this answer
2  
This answer is so good it's going to be a benchmark for others :) –  Nathan Osman Aug 9 '11 at 21:47

Qt-Designer

PyQt comes with Qt's Designer, which is a pretty neat graphical GUI editor, if you fancy to write your app with the Qt framework.

enter image description here

share|improve this answer
2  
+1 .. QT rocks ! –  Vamsi Aug 8 '11 at 11:55

Are you after a full IDE (ie, code editor, runtime environment, UI layout tools), or just a utility to create the UI?

If it's a full programming environment you're after, have a look at the 'quickly' toolset:

https://wiki.ubuntu.com/Quickly

If you're just looking to design interfaces, you can use the 'glade' designer to lay-out your interface using GTK widgets, then load that UI definition into any python program. There's a good tutorial (with both Python and C examples) here:

http://www.micahcarrick.com/gtk-glade-tutorial-part-1.html

Hope this helps!

share|improve this answer

Eric IDE Install eric

Try with Eric IDE. I think its the best IDE both for Python and Qt4.

Eric IDE

share|improve this answer
1  
Why was this downvoted?. Eric is a nice Python GUI that integrates QT development. It can design GUIs (using QT Designer), and it even compiles the .ui files to python (no need to use the command line). It's kinda a Eclipse or Visual Studio for pyQt. It's too heavy for my taste, but it is an interesting option for others. –  Javier Rivera Aug 9 '11 at 10:09

wxFormBuilder

It also depends which widget toolkit you want to use. I prefer wxWidgets with python, wxPython.

So my preference for building the GUI's is wxFormBuilder, it is avaialable from following PPA:

It has the nice simple drag and drop of widgets onto a canvas, and you can quickly switch to the code tab to see what it has generated, which to my untutored eye is clean and uncluttered. As the name on the tin says it is a form builder, that's what it specializes in. So don't expect to develop a full project with it, however if you like to keep the form design separate to the analysis code then it does the job well.

share|improve this answer
1  
The stock Ubuntu version can't generate Python code for some reason. I hope the PPA version doesn't have that problem. –  Christoph Nov 23 '12 at 11:48
1  
yes the PPA version can generate python code. –  Christoph Nov 23 '12 at 12:05

There is a new kid in town: Camelot. It is designed to build GUI's really quickly. It helps you to focus on your application, rather than on GUI code. The maintainers say

Camelot provides components for building business applications on top of Python, SQLAlchemy and Qt. It is inspired by the Django admin interface. You can use Camelot to develop both simple and complex business applications at warp speed.

The framework has been presented several times in international python meetings. Its advantages are

Developer advantages

  • On top of high quality and proven technology

  • Views are bound to data model without writing code

  • Customizable through the Actions framework

  • Documented from introduction tutorial to report printing

  • Warpspeed to deployable solution

User advantages

  • Responsive and familiar GUI

  • High quality editors and controls

  • Tons of built in functions such as import, export, printing, backup and restore

  • Mapped to business processes

Check http://www.python-camelot.com/ for more info, presentations, youtube videos and more.

disclaimer: I have seen this in action and have talked with the developers. I might be biased, but I honestly believe this is great software.

share|improve this answer

no one has mentioned tool that has quite a lot of use in other languages, and could be be known by starting user - Eclipse has perspective for python called PyDev.

share|improve this answer
    
Can Eclipse build a GUI? Even in Java? –  Eric Wilson Aug 8 '11 at 13:40
    
@FarmBoy: yes it can. –  RolandiXor Aug 8 '11 at 22:16
    
Has the pydev perspective got a GUI designer? –  Stefano Palazzo Aug 11 '11 at 8:51

Best Python IDE ever is PyCharm. But it not free and it does not have GUI designer. http://www.jetbrains.com/pycharm/index.html

share|improve this answer
4  
The OP specifically mentioned that he wanted a GUI designer. –  InkBlend Feb 24 '13 at 22:53

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.