The following pertains to Aaron's blog post. It is in direct response to this sentence That means you'll look and work native on Windows, Mac, KDE and GNOME if you write using Qt.
To which I replied via comment.
NO. NO. NO. NO. NO.
I've said it once and I'll say it a thousand more times: Qt does not look native on Mac OS X.
As a matter of fact it currently (4.5) looks like the bastard step-child of 10.3, 4, 5, and something else.I can't exactly pin-point what something else is but it has to do with wherever those weird gradients in the title bar came from.
So please, stop saying that Qt looks native on a Mac. It doesn't. Furthermore it never will if people keep telling the trolls (Nokianites?) that it does.
Further even if (when?) the Trolls get that sorted, KDE will still be a big bundle of visual fail because of the requirement for Qt3Support. Using the Cocoa APIs, which I surmise is necessary to use replicate the OS X UI, does not work if Qt3Support is compiled in. I say surmise, because currently, whether you compile Qt with cocoa or not, it's the same old horrid visuals on OS X.
The choice then is +cocoa, -qt3support (-kde). Or -cocoa, +qt3support (+kde). Fukitol. I'm going to just make a blog post.
HOWEVER. Everything written in the comment above is based on my use of Qt via KDE 4 on OS X. That, looks a little something like this: 
That, by the way, was taken from the Qt Mainwindow demo.
But there's also the MacMainWindow demo:

Clearly, Qt is capable of rendering a native UI on the Mac. So, I was wrong. I have wronged you deeply Mr. Seigo, and for this, I apologize. Seems to be a recurring theme lately.
HOWEVER. I was admonished after this post to stay on topic, so I'll bring us back to cross platform development. To get Chrome looking and feeling native
on all desktops would still require custom code specifically for the mac, because otherwise, you might end up with

instead of
I guess the beauty of Qt is that it'll probably take you much less time, once familiar with the necessary bits and bobbles, to do it.
P.S. Here's a more relevant comparison:

For those wondering what's wrong, here's a hint:

Yes, I am nitpicky. :-)
- illogic-al's blog
- Login or register to post comments
illogic-al.Org
So fix it
I will certainly sound rude, but I see a lot of people who seem to like to complain about the look of qt on macosx more than to go and fix it.
Qt would still have been a far better choice for Chrome, at least it would have integrated well both in linux and windows, and all that extra work they're doing to port it to macos and linux could have been contributed to improve the mac version of qt instead.
I'll just use something else instead.
Instead of users fixing things here in Mac OS land, we use them. The beauty of the OS is not having to bother with a lot of things because it's just done for you. If a developer is trying to court us, the Mac user, then they need to cater our whims and caprices. If that doesn't happen we vote with our little pointy-clicky devices and choose some other app, which caters to us, instead of yours.
I, therefore, don't need to fix anything. :-)
I think, Qt would have been a good choice for linux, for all the reasons Aaron listed, except looking native on the Mac. I suspect the same holds true for Windows, but I'm not sure. Using the measuring stick of KDE on OS X and Windows, it seems likely working with native toolkits with platforms would be a much simpler proposition, simply because the programmers for those platforms, would already be familiar with it.
P.S. Notice I never said things don't work well when Qt programs are translated to the Mac. Shortcuts, button order, toolbar behavior and other things, in my experience, work as expected. We are a vain bunch however, and if it doesn't look right, there is no chance of your software gaining traction here. Unless it's a scientific app, cause all we care about is whether things work or not, looks be darned. :-)
P.P.S. You certainly do sound rude, but I don't care. Being brusque tends to have that effect.
The reason you'd see a lot of people complain about the look of Qt on Mac OS X is because it doesn't look right. That matters here. And if no one complained, how'd anyone know there's something that needs fixing? People do this all the time on linux and even windows. As a matter of fact, it's so important that to streamline the whole complaining process one day someone(s) went off and created bugzilla. ;-)
hard to say if qt4 looks
hard to say if qt4 looks native on windows, since all apps try to use something different, but the xp and vista style for qt works really well, looking native on osx without any modification is probably harder since osx has a lot of different widgets than windows or linux, for example in the screenshot here there are many type of buttons http://labs.trolltech.com/blogs/2009/04/17/mac-widget-style-addons/
What would "looking native" mean on windows?
There's no such thing as "looking native" on windows. That's a myth.
What would the windows native widgets be?
Win32 controls? Too archaic for any serious use. Too limited. The api is awful and the performance isn't even great. Even microsoft stopped using those long ago in any serious application. IE6 for instance reimplemented all its own controls entirely (even though most mimicked the look and behavior of the win32 ones).
Windows forms? It's a rather archaic toolkit imo. And it's alwo very limited, there's not many really useful controls shipping with it (meaning that people use various third party control libraries or extend windows form with their own controls).
WPF? It does seem like the first time I ever heard of a decent widget toolkit from microsoft, but it's not used much yet.
See also the great disparities of user interfaces in microsoft products such visual studio, microsoft office, media player etc. I remember reading somewhere some guy from microsoft saying that they reinvented widget toolkits again and again accross their various products, and it shows.
Basically there's no consistency across microsoft applications in the first place, so it's not really possible to complain about something not looking "right" on a platform where things are so disparate.
This is another reason why the argument from the Chrome team "we want chrome to look native on windows" buggers me: it doesn't make any sense whatsoever (that and the fact that except for the various dialog boxes, chrome goes out of its way not to look like any other application)
I don't really care
I don't really care if there's such a thing as looking native on windows. I'm talking care about the mac. Also, in your rush to bash Windows you seem to have missed the
from the quote above.
Also I've never heard the argument from the Chrome team that they "want chrome to look native on windows"...
Qt
Native mac application
Qt application
Those are dialogs
Dialogs != Full application.
How about you show the app where that config dialog came from? :-)
Judge for yourself
Hunted the app down on qt-apps myself:

And I hid the, decidely, not-mac-enough app icons to avoid skewing opinions.
As with the Arora browser, the back/forward buttons, at least (TexturedRounded buttons from http://labs.trolltech.com/blogs/wp-content/uploads/2009/04/cocoawidgets.png) need to be used, and thus manually coded for.
MacMainWindow
Isn't the fact that a "MacMainWindow" example exists enough proof that Mac-looks aren't something every Qt app gets for free? Maybe I'm wrong, but I'm pretty sure thats illogic-al's entire thesis in this blogpost.
Mac Look & Feel
I'll agree with the central question -- Chrome should have picked Qt instead of GTK+ if they wanted to use it on Linux and Mac (and Windows). Qt is a much better choice. I think you can write better code with Qt.
I think Qt gets you ~80% of a Mac port. Granted, that's the most important 80% of an app (especially in science). But I know from experience that there are a lot of little details that need to go into a "native" program on any platform. File associations, icons, look-and-feel... Now that there's a Qt/Cocoa port, there's finally a way to take the extra steps for that last 20% of a Mac port.
There's just an impedance mismatch between Qt and Mac. The Trolls do a lot, but handling menus is a pain. If I close a document on a Mac, I still have menus. I had to write a pile of code to attempt that in a Qt/Mac program (Avogadro). It still has bugs.
That's the point of the MacMainWindow. You don't get those Mac looks for free -- you have to replace the Qt widgets with native Cocoa ones. Yes, it's possible, but it's not like you just recompile the KDE Linux app.
Anyway, Google made the wrong choice on Linux. Heck, Google Earth on Mac and Linux use Qt, right?
Having done 2.5 years of
Having done 2.5 years of cross platform development with Qt, I agree.
It takes a lot of effort to make Qt applications look like Mac applications.
For example I had to override the mouse and paint events in the Last.fm client to move the arrows it draws on the left 7 pixels to the right so that it looked like all the other tree views on OS X. I had to do tonnes of custom layout to make widgets line up like they do in other Mac apps (QDialogButtonBox is just rubbish). We had to override the QStatusBar to make it look like other apps on OS X! QStatusBar! Shouldn't that at least look right?
Four consecutive versions of our app used 4% CPU when idle on Mac. Eventually Qt 4.3 came out and the bug stopped. This is good, they fixed it, but things like this are why I maintain little confidence regarding Qt on Mac.
But this is only part of it, you can make Qt apps look like Mac apps, but you just can't make Qt applications feel like Mac applications.
Some of this was addressed with Qt 4.5 if you compile with Cocoa; one thing that always made Qt apps stick out like a sore-thumb was mouse wheel behaviour in scroll views. Mac mice have a scroll-ball, scrolling it a little moves the scroll view 1 pixel. Qt apps always scrolled by 10 or so. More like Windows and Linux behaves. This is fixed with Cocoa-built 4.5.
But sadly, numerous other issues remain. Also sadly, I can't think of any right now. But you only have to google for Qt mac sucks to get a feel for what real Mac users think.
I agree with you illogical. I'm not sure why all the losers above my comment are defending Trolltech so firmly, or demanding you fix it. You? Wtf? Don't you do enough already? I bet none of them do anything to help any open source projects. Trolltech are great, but I will not develop with Qt on Mac again if I can help it. I don't think the situation can be fixed until Qt 6, and only then if they really think about how widgets layout more carefully. I appreciate it is hard to do. If anything it exposes the truth about cross platform development, ie. really the GUI layer has to be native. But sadly Qt isn't flexible enough to allow that. And I don't know if it should be. Qt is wonderful because you can develop amazingly polished apps quickly and bugglessly. I wouldn't want to compromise that.
Also there are plenty of excellent and unique widgets that Cocoa provides. With Qt, you can get them, but only with Cocoa Qt and then you need to do platform specific development anyway.
Qt is great on Windows, Microsoft provide nothing good for C++ developers on Windows. And if you use Win32 you have basically no powerful widgets that are native. Qt is great on Linux, (although I would have picked GTK for Chrome too TBH), I wouldn't use anything else on those platforms.
Needs work on Mac, kthxbai.
ps I had to register to comment?! I _almost_ didn't. I guess that is what you want, but still, I'm not happy about it :P
Imagine how I feel. It's my
Imagine how I feel. It's my site and I have to do it too. :-(
It was the easiest way I knew of to fight the spammers. It was either that or block everybody in mainland China :-)