Portal Home > Knowledgebase > Articles Database > Cross-Platform Application with GUI: GTK+, Qt, wxWidgets or other?


Cross-Platform Application with GUI: GTK+, Qt, wxWidgets or other?




Posted by luke_a, 01-11-2009, 05:48 AM
Soon I am going to start developing my first server/client application, the server side won't feature any GUI, but the client side will as it will be used on workstations by other members of staff. I want this to be a cross-platform application, although Windows is the main workstation OS used, I use Linux, and am trying to encourage others to do so too. There is also the possibility that people will want to use it on their Mac, although I don't have one to test with, I don't want to rule them out completely by programming in something that isn't portable. So to this end I am considering using either C or C++ for the application(s). I will be using MySQL to store the data, as I have a fair bit of experience with this by doing web development for several years. But for the client frontend GUI I was considering using either of the following: - GTK+ (http://en.wikipedia.org/wiki/Gtk) - Qt (http://en.wikipedia.org/wiki/Qt_(toolkit)) - wxWidgets (http://en.wikipedia.org/wiki/WxWidgets) As far as I can gather all are cross platform and the licence allows me to use it for this commercial project. Does anyone know of any benchmarks that compare all three, as I am keen to make the application very quick, efficient, stable and use as few resources as possible as it will be used on very old machines (~8 years old). Also it would be good if the staff didn't have to install any other dependancies, like with GTK you have to install that first on a windows machine for GIMP to work. Unless you can suggest anything else?

Posted by bqinternet, 01-11-2009, 09:48 PM
Have you considered making the GUI web-based with AJAX?

Posted by luke_a, 01-12-2009, 05:53 AM
Have you considered making the GUI web-based with AJAX? A web interface wouldn't provide enough functionality for what I am hoping to achieve.

Posted by jstanden, 01-15-2009, 08:08 AM
Since you list "other" as an option in your title, we've had a lot of success deploying cross-platform "native" applications to Windows, Linux and Mac OS X using Java and Eclipse's RCP (http://wiki.eclipse.org/index.php/Rich_Client_Platform). You still end up with an executable binary on each platform, but the UI interacts with the OS using C drivers. That's all abstracted by Java and your code works pretty much the same on each system. The downside of RCP is that it tends to favor a lowest-common-denominator approach in its APIs. That's most apparent in things like the flexibility of rendering table cells, etc. We've been spending more time on web apps and the iPhone, but if I had to do another big cross platform app I'd likely go right back to Java/RCP again. It's worth a look if you're open to Java. Good luck!



Was this answer helpful?

Add to Favourites Add to Favourites    Print this Article Print this Article

Also Read