111

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 with Swing components using NetBeans or Eclipse.

Or is there an add-on present in either NetBeans or Eclipse itself?

4
  • Have you looked in the Ubuntu Software Center at some of the items listed under Developer Tools > Python ? Aug 8, 2011 at 3:29
  • 5
    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, 2011 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. Aug 8, 2011 at 21:31
  • I up voted for anything like Visual Studio for Python? Dec 21, 2016 at 19:44

9 Answers 9

105

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:

2
  • 2
    This answer is so good it's going to be a benchmark for others :) Aug 9, 2011 at 21:47
  • 1
    I found glade a terrible and buggy RAD.
    – renatov
    Sep 11, 2015 at 15:46
49

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.

Qt Designer screenshot

Qt Creator

Qt's new IDE has full blown support both for desiging widgets (as designer above) and QtQuick applicaitons, which is better for lightweight, fluid, touch-enabled applications (i.e. tablet/mobile apps)

<![QtCreator IDE][5]>

<can't find qt-project.org/uploads/image_upload/creator_30_designer_mobile_app.png>

0
23

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.

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 GTK+ and Glade3 GUI Programming Tutorial (with both Python and C examples).

14

Eric IDE

Try with Eric IDE. I think it's the best IDE both for Python and Qt4.

Eric is a full-featured Python IDE written in PyQt using the QScintilla editor widget.

Some highlights:

  • Any number of editors with configurable syntax highlighting, code folding, auto indenting and brace highlighting.
  • Integrated Project Management facility to organize your projects. The project browser shows all source files, all forms and all translations each on its own tab. The source browser has built in class browsing capabilities.
  • Integrated and full featured debuggers for Python and Ruby.
  • Interactive shells for Python and Ruby.
  • An explorer window for walking through your directory structure with built in class browsing capabilities for Python files.
  • Variable windows that display local and global variables in the current scope while debugging a program.
  • An integrated interface to the Python Module "unittest".
  • An integrated help viewer to display HTML help files. Alternatively you can choose to use Qt-Assistant to view help files.
  • Display of the UI in different languages.
  • The capability to start Qt-Designer and Qt-Linguist from within eric5.
  • The ability to compile Qt-Designer forms, to produce Qt-Linguist files and release them from within the IDE.

To install Eric IDE in all currently supported versions of Ubuntu open the terminal and type:

sudo apt install eric

Eric IDE

2
  • 2
    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. Aug 9, 2011 at 10:09
  • @JavierRivera: likely because this looks like an IDE, not a GUI designer. Mar 15, 2018 at 1:19
8

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.

2
  • 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, 2012 at 11:48
  • 1
    yes the PPA version can generate python code.
    – Christoph
    Nov 23, 2012 at 12:05
3

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.

2

SharpDevelop

SharpDevelop screenshot

SharpDevelop is for developing application based on .Net Framework. It does support IronPython and has GUI designer for WinForm, Silverlight, WPF Application. While Visual Studio also has various GUI designer for IronPython, however it doesn't have GUI for WinForm.

1

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.

3
  • Can Eclipse build a GUI? Even in Java? Aug 8, 2011 at 13:40
  • @FarmBoy: yes it can.
    – RolandiXor
    Aug 8, 2011 at 22:16
  • 1
    Has the pydev perspective got a GUI designer? Aug 11, 2011 at 8:51
1

Check out PyForms, it is based on PyQt. It can be used with the Qt Designer but it is also quite easy to design GUIs directly in the Python script..

https://github.com/UmSenhorQualquer/pyforms/

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .