You should be aware that your GUI will *not* be nice on all 3 platforms at once if you use a single toolkit.

Qt sucks. I don't know wxWidgets. GTK+ is good (at least when programmed from Ruby/Python) but currently only targets X11 on Mac OS X. Swing isn't great, but is better than most of the rest. I haven't tried SWT.

Qt suck on the mac, but in my opinion it's not as bad at OSC says. He -- for I assume good reason -- severely dislikes C++.

Qt does some dirty things with C++ requiring a metacompiler and as such is a PITA unless your toolchain is set up to work with the "moc". So long as that works, Qt's not really that bad. Your apps will look and feel native on Windows and Linux. They'll totally look and feel broken on OS X, though.

Qt's hacked-on dynamism is bad, but it's not the worst thing about Qt. The worst thing about Qt is how programmatically changing the value of a widget fires all the change notifications, so you constantly have to disable change notifications and reenable them.

Of course, I haven't used Qt 4. I hear that they haven't fixed the issue, though they have added a new set of "MVC" APIs which help avoid it.

The whole metacompiler thing for QT is annoying. But I haven't had many other problems with it. The GUI doesn't end up looking any more un-Mac-like than your typical Java application (not that that is good... just not *that* bad relatively speaking). And OSC, you don't *have* to disable notifications just choose when/how you fire those notifications.

Of course all that said, if I'm making something that has to be cross-platform I'd rather use Java. If not, I'd use Cocoa so I don't see that much of a place for it. And I've only ever use Qt 4 so I have no idea what it was like prior to that. I've heard Qt 4 was a good step forward.

OneSadCookie Wrote:Qt's hacked-on dynamism is bad, but it's not the worst thing about Qt. The worst thing about Qt is how programmatically changing the value of a widget fires all the change notifications, so you constantly have to disable change notifications and reenable them.

Of course, I haven't used Qt 4. I hear that they haven't fixed the issue, though they have added a new set of "MVC" APIs which help avoid it.

Oh my, I forgot about that. I haven't done a lick of Qt programming since coming to the Mac and discovering Cocoa. I think the last version of Qt I worked with was an early version of 3.