Shobhit
Shobhit

Reputation:

How to decide GUI Framework for desktop application project

I am working on a new small utility desktop application but I am not really able to choose the GUI framework to use. I have worked on both JAVA,C# and C++, so language is not really a constraint. My criteria are:-

  1. A very well designed architecture, something like QT. It's better if it follows typical C++ design methodologies.
  2. Layout management should be easy, intuitive and not really cumbersome. I hate adjusting pixels on screen.
  3. Its license should be open.
  4. It should look good :)

Upvotes: 4

Views: 3706

Answers (4)

Frank Niessink
Frank Niessink

Reputation: 1611

I'd suggest wxWidgets if you want to program in C++ or wxPython (the python language binding of wxWidgets if you know or don't mind learning Python.

  1. Architecture is similar to QT I think.
  2. Layout using sizers. Quite easy once you get the hang of it.
  3. Liberal open source license.
  4. Widgets are native on all platforms (Windows, Mac OS X, Linux).

Upvotes: 0

JasCav
JasCav

Reputation: 34652

You could always try SWT. The advantages of Java with the standard L&F of supported operating systems.

  1. Well designed. Lots of documentation, and very easy to develop with. (If you know Swing, you can pick up SWT in no time.)
  2. I believe layout managers do exist that support SWT. I'm not positive about this though, as I typically don't use layout managers too much.
  3. Uses the Eclipse Public License. Should meet most of your requirements.

  4. From Wikipedia on SWT:

SWT is written in Java. To display GUI elements, the SWT implementation accesses the native GUI libraries of the operating system using JNI (Java Native Interface) in a manner that is similar to those programs written using operating system-specific APIs. Programs that call SWT are portable, but the implementation of the toolkit, despite the fact that it is written in Java, is unique for each platform.

Hope that helps you.

Upvotes: 0

samuil
samuil

Reputation: 5081

Mentioned QT seems to comply to all your requirements. QT has "deploy everywhere" attribute, whilst Java needs no deploying at all (it depends on what is use of your utility).

Ad. 2 QT has really convenient GUI designer.

Ad. 3 LGPL. Usually it is enough.

Ad. 4 It is always matter of taste. IMO QT4 looks awesome under linux, but it's windows look'n'feel is correct at best. It's strong point is, that without additional tweaks it almost everywhere looks native.

Upvotes: 1

TGV
TGV

Reputation: 866

I've been using Swing, and it works fine. NetBeans (a decent IDE by itself) even supports graphical GUI building.

  1. It's well designed (basically everything is done with listeners, functions that are registered for a certain event). It has bindings, so you don't have to write code to set up a value in a text field or read it out

  2. Layout is not perfect, but acceptable within NetBeans. It's WYSIWYG (almost). Look-and-feel can be changed on the fly.

  3. License is free. Source-code is not available, I think.

  4. Looks fine on Windows and Linux, less so on OSX.

Upvotes: 0

Related Questions