6

I read something on this site saying that Qt's GUI being a big problem that stop programmers from using Qt. They say the problem is that the GUI don't look native, and they are inconsistent. I personally use Windows, and from what I can see (some tree view and table view), they look pretty good and very native-looking too. So I want to know what they are like on Mac, and what are the differences? and what differences there should be between ordinary Mac apps and ordinary Windows apps in terms of user experience?

Andy
  • 599
  • 1
  • 6
  • 15
  • 1
    this is silly man,if you asked the whole universe they will tell how native looks the Qt library, and everybody knows that there is no better cross platform than Qt, and actually you can't find a better native look than that – Qchmqs Dec 03 '11 at 11:03
  • 1
    This is a good question. I have also read a few articles about Qt GUI not looking native and would like to hear from people who have developed for multiple platforms using Qt. +1 from me. – Abbas Dec 03 '11 at 15:42
  • 1
    This is a garbage question, becaue it is very easy to change the look with stylesheet (http://doc.qt.nokia.com/stable/stylesheet.html) – BЈовић Dec 03 '11 at 18:46

2 Answers2

4

Mac applications with a GUI are usually written in Objective-C and use AppKit, which provides a UI that's consistent and similar in every application (e.g. short cuts are the same everywhere, the same controls have the same size, dialogs are the same, menu bar is similar in all applications). This means that if you know how to use TextEdit, you automatically know how to use TextMate, and if you know how to use iTunes, you can find your way easily in iPhoto and Aperture.

Qt breaks this consistency by using controls that aren't native. For example, using windows instead of sheets to show an error message, or by not using proxy icons in title bars of windows, or using them wrongly. I do use one Qt app on my Mac, which is the GUI front-end of Doxygen. It works but the first time I opened it I immediately saw it wasn't a so called "Cocoa" app (one that uses AppKit as described above).

If you want to have a cross-platform app with a GUI consistent on both platforms, rewrite the GUI for each platform. You can use the same back-end.

If you want to know the exact differences in UI between Windows and Mac OS X, refer to their human interface guidelines. (Mac OS X HIG and Windows UEIG.)


tl;dr: If you are writing a little tool like a front-end for a command line tool, or a simple calculator, go on and use Qt. If you're writing a big application like an IDE, a Terminal emulator or a Twitter client you should rewrite the GUI completely for every platform to be consistent.

  • could I still use Qt for the back-end, or just plain c++? – Andy Dec 03 '11 at 22:25
  • @Andy yes, of course. You can use Objective-C++ to mix Objective-C and C++ code. You can even use Qt. Qt also has [a class](http://doc.qt.nokia.com/latest/qmacnativewidget.html) that allows you to use both AppKit and Qt for the GUI, if you like that. –  Dec 03 '11 at 22:48
  • 1
    @WTP Qt has supported sheets since 2006, and just about every other Mac-specific GUI feature. Of course it's not Qt's fault if developers don't use them... – cmannett85 Feb 11 '12 at 12:03
3

On windows it's native - themes and everything. Rather more native than a lot of the OS, which when you dig down into some of the management screens goes NT on you.

On Linux it is the native toolkit for KDE and looks ok on Gnome

Don't use Mac - but Mac users do get very touchy about everything looking exactly as Apple says it should

Martin Beckett
  • 15,776
  • 3
  • 42
  • 69