tags:

views:

671

answers:

6

I am currently searching for a GUI framework that looks and works native under Mac and Windows. Further I dont want to use C++ but e.g. C#, Java, Ruby or Python.

Thx a lot.

+5  A: 

wxPython should meet your needs.

Nick
wxPython is the Python-variant of wxWidgets, so the answer should probably be wxWidgets.
oefe
The wxWidgets base is a c++ framework which poster said they did not want to use.
Nick
+3  A: 

Have you looked at using the QT framework? It's a cross platform toolkit that works on all major operating systems. The primary code is C++ but they have bindings available for most popular languages including C# and Ruby. I'm pretty sure about Python as well

JaredPar
Qt is the most 'native-looking' crossplatform framework available. pyQt is the most complete non-C++ binding for Qt.
Javier
Just to clarify, Trolltech (now Nokia) produce the official C++ Qt and a Java wrapper called Qt Jambi. The C#/Ruby/Python (called PyQt4)/etc. bindings are unofficial and maintained by separate groups.
Barry Wark
+5  A: 

In Java you could use the SWT, which is a wrapper around the native widgets which are available on the different OS.

If you're developing in Eclipse, then also have a look at the graphical GUI builder Jigloo, which can generate SWT code (and is able to cope with manual changes to the generated code). It has a quite nice step-by-step tutorial which guides you through the easy process of creating your first SWT window.

Kosi2801
+2  A: 

How about Java and Swing? Works well, and there are extensions from Apple to deal with some of the specifics (Apple Menu etc).

Miles D
It isn't native looking, unless using the appropriate look and feel for the current platform...
PhiLho
+1  A: 

Have a look at wxWidgets or Qt framework

masterik
+8  A: 

Look at wxWidgets or QT.

However, consider that those toolkits will only get you an approximate platform look and feel. Usually, it feels "OK" on Windows, but on the Mac it typically looks and feels more like a "ported" Windows app than a native app. Demanding as Mac users are, they don't like that very much... Also, you are often limited to the common subset of the systems.

If you want to make a great app, consider separating your code into a platform-neutral business layer and a platform-specific GUI layer, and implement the GUI on each platform with the native tools for that platform. Yes, this will be more work, but depending on your goals may be worth it.

oefe
There are also different UI guidelines defined by Microsoft and Apple - for example over the order of OK and Cancel buttons - which mean that the best solution is a thin custom UI per platform as you suggest
Mark Pim
This is very true. Another case is where certain items should appear in a menu bar.
Nick