views:

258

answers:

3

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 :)
A: 

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.

TGV
A: 

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.

samuil
A: 

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.

JasCav