I've been coding for a while and now I'm working at a company that has no programmers. So whatever I do, it can't be a command line tool, or a batch file. Therefore I'd like to know if there are any easy, but pretty, GUI Designers that i can produce softwares with, and embbed my code/data.

My favorite language would be python. But if there are others that are worth learning feel free to suggest.

I'd like to hear suggestions for both Ubuntu and Windows. As for the complexity, not only I'd like usual combo/text boxes and buttons but I'd also like to be able to display tables and charts (that could or could not be images that I generate using python or whatever) thanks !


3 Answers 3


I highly recommend Python with PyQt. PyQt can take advantage of Qt Designer which is a decent UI creation tool. Admittedly, understanding PyQt (aka PySide) programming and integrating with the ui data from Qt Designer to develop full and robust applications, isn't easy because it is deep and the resources take time to find (but they are available.. especially on StackOverflow). It has been extremely rewarding and the results are as powerful as most any C++ program. In fact, an experienced eye can not tell a compiled Python/PyQt program from any other Windows application. I compile my Python/PyQt apps into exe's using PyInstaller. PyInstaller will also allow you to embed data files like sqlite or images and anything else you need. You can build stand-alone applications or install-able applications.

The only major negative is that it has taken me several years of hard work and experience to understand all the layers necessary to produce powerful tools for the office where I work (I am in a similar situation as you). If you understand Python and OOP programming, that is half the battle. I have only needed to develop for Windows (not Linux or OSX yet), but I am confident that the Python/PyQt stuff will 98% transfer to those platforms.

I have mostly created utilities for my company with a friendly UI that usually connect to an intra-office MySQL database. A few programs also take advantage of matplotlib for pie charts and plot graphs inside a PyQt widget.

With a little more specifics, I might be able to provide more insight in this area.


Python already has a standard GUI toolkit, Tkinter. It's old but still popular, and you shouldn't have trouble learning it since you're already familiar with Python.

It is free, and runs on Windows and Linux distributions.

Tkinter has all the basic GUI elements. Here is a reference.

TkTable also allows you to embed spreadsheet-like tables in Tkinter. Additionally, This question and answer also deals with embedding graphs using matplotlib

  • 1
    is it drag and drop though ?
    – Pedro Braz
    Jun 3, 2015 at 12:31
  • 2
    @PedroBraz For that you'll need another extension Tkdnd
    – Tymric
    Jun 3, 2015 at 12:36

If you are married to the idea of Python, then downvote this. But, since you only say, "My favorite language would be python", I am going to go ahead and recommend Lazarus.

Lazarus was started as an Open Source, cross-platform, clone of Borland's Delphi, which means that its coding language is Object Oriented Pascal.

The big advantage for you of Lazarus are that it is a Rapid Application Development IDE where you can just drag & drop components onto a form, move them around until you are satisfied, and then click the components to add the associated code.

Additionally, there are hundreds (if not thousands) of free components offering functionality beyond the standard list box, edit box, radio button, etc.

I personally find that, even though I code Python, I prefer to reach for Lazarus when I have an app with a rich GUI and that my development times are very fast.

A What You See Is What You Get (WYSIWYG) visual windows layout designer
An extensive set of GUI widgets or visual components such as edit boxes, buttons, dialogs, menus, etc.
An extensive set of non-visual components for common behaviors such as persistence of application settings
A set of data-connectivity components for MySQL, PostgresSQL, FireBird, Oracle, SQLite, Sybase, and others
Data-aware widget set that allows the developer to see data in visual components in the designer to assist with development
Interactive code debugger
Code completion
Code templates
Syntax highlighting
Context-sensitive help
Text resource manager for internationalization
Automatic code formatting
The ability to create custom components

If you must have Python, then Google around. I recall a tool which would parse your Python app's get_opt options and auto-generate a GUI from those - but don't expect it to be pretty.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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