[Qt-interest] Is Qt the best choice for cross-platform desktop GUI applications? Mac OS X (Cocoa, Aqua)? KDE, GNOME, Windows 7

Andrew Hodgkinson ahodgkinson at endurancetech.co.uk
Tue Apr 13 12:02:28 CEST 2010


On 12/04/2010 22:07, Elfen wrote:

> [...] Some ideas that get honorable mention: A) multiple native GUI
> toolkits (Windows, WPF, Expression Blend) (Mac OS
>
> [...] An absolute minimum is to have very correct native visual style
> for the widgets (Mac OS X - Cocoa Aqua ?)

The only way to meet this particular requirement at present is to use the
native toolkits for the GUI sections of your code.

Java on Mac doesn't look like Mac software at all. It doesn't really look
like Windows software in Windows either, IME. Even the file open/close
dialogue boxes are bespoke, rather than using the system dialogues you
see everywhere else. Qt does much better, but can still scream "portware"
- spacing is wrong in subtle ways, fonts aren't quite right, integration
with some deeper aspects of the OS isn't always there and so-on. It's not
bad - just not native.

If you want to take advantage of OS X specific things like drawers or the
HUD then - well - you can't; AFAIAA these have no analogue in other
common GUI environments. A wider issue is the risk of doing work that
isn't necessary - sometimes platform-specific toolkits make it easy to do
platform-specific things that would be harder in a more generic
environment (that said, there may be examples of just the opposite).

Cross-platform frameworks by definition must usually present a lowest
common denominator subset of the features with equivalents across all the
target platforms. For back-end coding this is less of a constraint - Qt
can entirely implement facilities which might be missing in the OS. The
GUI is much more tricky because you can't just "invent" some new UI
paradigm on a platform in the same way that you can freely "invent" some
invisible-to-user back-end API framework of your choosing.

IMHO:

* If you have the time and skill, use platform-specific GUI tools and
    have common back-end code in ANSI C/C++, Qt, whatever. It's great for
    your CV and exposure to multiple GUI toolkits is every bit as useful,
    relevant and illuminating as exposure to multiple languages.

* The cross-platform tools of which I am aware are varied and of these,
    Qt does seem to manage a very good amount of OS level integration and
    "native-like" behaviour. OS X may suffer but - and this is as a full
    time OS X user! - it's only a very small percentage of the installed
    desktop market, so maybe for your app, it's just not important enough
    to spend the time learning it. Depends on the target market I guess.

-- 
Andrew Hodgkinson, Endurance Technology
Land line: 01223 369 408, mobile: 07855 866 780
Registered Office: 5 Marine Drive West, Bognor Regis, W. Sussex, PO21 2QA



More information about the Qt-interest-old mailing list