1

Trying to make an application, ideally cross-platform but it's not required. I know that GTK exists and is cross-platform for Mac, Windows, and Linux, but what else exists? I want to explore all my options before making a big choice like that.

The program's backend will be a mixture of an OOP (C++, Java, or Python) and SQL/Hibernate.

As per Nick's comment:

Features required/requested:

  • Cross-platform compatibility
  • Support for a mixture of SQL with an OOP (python, java or c++)
    • Language can be influenced by the GUI software, it's not set in stone which language we'll use
  • Easily/logically extensible. The finished product will have a 'core' that should be easy to customize for different applications of the core. Ideally it would be modular, so that I would never have to change the 'core' but could simply override the file for a certain screen if I wanted to add a column, drop-down box, check box, etc.
  • Some sort of commercial license must be available, GPL/LGPL won't work for the application due to other software that will be used. BSD license should work, but I'm not overly familiar with licensing to be positive
4
  • 1
    Narrow it down at least to what language and a couple feature requirements since otherewise there are dozens that could match - just with Python I can think off hand of 3. Commented Jun 25, 2014 at 14:39
  • Updated with some requirements/requests. Anything else?
    – Mitch
    Commented Jun 25, 2014 at 14:46
  • Hibernate is a Java Orm framework so Java, yet python or c++ are mentioned. Another thing, support for a mixture of SQL, what do you mean by that? it's a GUI. So far this question can split to 2 questions(imho). 1 for an easy to use tool for desktop graphics and cross platform, 2 for an easy orm for connecting to a database
    – dimzak
    Commented Jun 25, 2014 at 18:37
  • I mentioned hibernate because that's what the current application uses alongside java. Because java is also a possibility, I mentioned it. In the case of C++ or Python obviously the hibernate would be thrown out and we'd have to use something more in line with those languages. The 'support for a mixture...' meaning SQL + one of the other three OOPs. So, for example, if one particular program had tons of issues with Hibernate it means we could either not use hibernate or not use the program
    – Mitch
    Commented Jun 25, 2014 at 20:39

2 Answers 2

3

For all my python programs, I use Tk (https://wiki.python.org/moin/TkInter). It is cross-platform and very easy to use. Disadvantage: it's as ugly as hell on Linux.

For Java, I think it has it's own Toolkit, but I'm no expert there.

And, last but not least, Qt. Qt is more cross-platform than GTK (works better on OS X and Windows, also supports mobile devices), easier to use from what I have heard, and compatible with a lot of languages.

Tk on Linux: enter image description here

Qt on Windows: enter image description here

1
  • @Cornelius Also!? :P
    – MadTux
    Commented Jun 25, 2014 at 16:20
2

There is the wxWidgets tool kit with it's bindings to python as wxPython, (there are also bindings to other languages such as wxPerl, etc.), - completely free, permissive licence, mature, open source and cross platform. One of it's points is to look as native as possible and run as fast as possible by using the native controls wherever they are available just with a standardized interface.

Having used it for a considerable number of years I can strongly recommend it - it has also been used for a few well known projects, (quote from the web site):

Some of the better-known organisations who have used wxWidgets include AOL, AMD, Lockheed Martin, Xerox, NASA, and the Open Source Applications Foundation (OSAF). wxWidgets applications that you may be familiar with include AVG AntiVirus, Forte Agent, Audacity, Filezilla, iPodder, and Tortoise CVS.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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