In-Depth With Qt 4.4
QtPi writes "Trolltech has announced the availability of Qt 4.4, the cross-platform software development framework. Ars Technica has an in-depth look at the release, which include an integrated WebKit-based HTML rendering engine, the new Phonon multimedia framework, support for Windows CE, and significant improvements to the QGraphicsView system. 'Qt 4.4 brings a lot of rich new capabilities to the toolkit that are sure to please open source and commercial software developers. It sounds like Trolltech already has some nice plans for Qt 4.5, and we will hopefully get to hear more about the long-term roadmap after Nokia completes its acquisition.'"
Graphics View alone is an extremely powerful tool - now it seems to be able to do things no other toolkit comes even close to. I can't wait to use 4.4 in an application I'm developing right now (a game map editor), this feature will allow me to make some parts of the user interface a whole lot simpler and more intuitive, throwing away a bunch of docks and toolbars in favor of a more interactive workspace.
This is Slashdot. Common sense is futile. You will be modded down.
I really look forward to the Phonon functionality. You can now finally write cross-platform players, capturers, encoders, indexers, mixers, filters and whatnot that'll work across all backends, as Qt is writing the backends for Windows (DirectShow) and OS X (Quicktime) as well. Note: I know not all of these features aren't in 4.4 some are pushed back to 4.5. I really hope this manages to unify the Linux multimedia experience. It's these kinds of deep changes I think are necessary for Linux to succeed in the long run, having to deal with xine/gstreamer/vlc/mplayer which all seem to work on different content but none on all is something the user shouldn't have to do. Having them all in one cross-backend API is a very big step forward.
Live today, because you never know what tomorrow brings
Vladimir just posted about working more on Qt for Firefox - http://blog.vlad1.com/2008/05/06/well-isnt-that-qt/ - the more devs that can help, the quicker this will happen.
The ZSNES developers for one prefer how Qt works and R. Belmont (of MAMEdev fame) also stated that the only reason he used GTK+ on the Linux port of Audio Overload was because various portions of the code weren't compatible with the GPL. If they had been, he'd have used Qt instead. I also prefer Qt, hence why I use KDE in preference to anything else and why I view the possibility of Mozilla using Qt with some excitement.
I'd go as far as to say that GTK+'s 'killer feature' these days is the licence. The fact that it uses the LGPL as opposed to the GPL and was open sourced well before Qt is why it's remained so popular. In most other respects, Qt is the better toolkit.
libqt-mt is probably qt3 not qt4, but anyway qt4 provides a lot of things and nowadays disk space is not a problem, try to mix together gtk+libxml+webkit/gecko+many more things and you'll probably use much more disk space than qt4 with different api and with all kind of cross platform issue I don't understand your problem with windows, but qt4 isn't just c++, there are many bindings for python, ruby and even c# on mac os x qt4 looks good to me, there is even an alpha version of qt4 that uses cocoa instead of carbon
It was Keyhole's engineers that made that decision, not Google's.
>> On Linux the libraries are now so damn big that non-KDE users wont install them.
That's ridiculous. Only the hardcore GTK purists won't install qt libs. No one else will ever know or care. You can never please those fanatics. If you use GTK you will have the same problem with hardcore Qt purists. You can safely ignore those idiots.
>> On Windows the best development tools are moving away from C++.
As others have mentioned, that's not the case at all. Visual Studio has excellent C++ support in its latest versions, and there are lots of decent free alternatives (Eclipse CDT, dedicated stuff like QDevelop).
>> On Mac it's just plain ugly.
I can't say much about that since I don't use a mac, but some other people have mentioned that they didn't even notice the difference on some Qt using apps. Once again I doubt it's an issue for anyone except the hardcore purists.
And what's the alternative? Write a custom UI for each platform? Maybe if you have resources to burn, but these days it's just a huge waste.
It's a most troubling prospect you bring up there, if only there was a way that several applications could share the same library. Maybe we could create some sort of package system, where you download the library just once from something we could call a repository. Then we could have a package manager to sort this out, so that you could have tiny 100kb apps using a 10MB library. Oh, a man can dream...
Seriously though, it might have been a semi-valid point on Windows but on Linux where he used it it's complete nonsense.
Live today, because you never know what tomorrow brings
The only drawbacks on Qt I see in the comments here is that the lib is too fat or that C++ is dead. But let's concentrate on What Qt provides:
.NET descided like Trolltech that C++ was too complicated. Sun created the java language, MS the C#, Trolltech just decided to limit themselves to a subset of C++ and add some extensions via macros (and a precompiler which generates the boilerplates) but globally the aproach is similar.
A API that covers the purpose of glib + gobject + gio + atk + pango + cairo + gtk + gstreamer + gecko + libxml2 + goocanvas + internationalization + portability accross Unices, Mac and Windows This is splitted in several modules Core, Xml, Network, Gui, Phonon, Webkit And the main point is that you have all that in the same API with the same object design. If you never coded in Qt, try it before saying it sucks, you will see how straitforward everything is.
Signals/Slots in really a fantastic feature and massively used in Qt
Java /
I use Qt every day and I really don't think I could be as productive with WxWidgets or GTK. Maybe GTK / Vala will be the future real competitor to Qt.
I was pretty excited about the Windows Mobile support in this, until I downloaded it, read the FAQ, and discovered that you have to have the Windows Mobile SDK installed to use it. While the SDK is free to download, you must have Visual Studio (not an Express version) to install it, so developing mobile applications is still going to cost you at least a few hundred dollars.
So, just a heads up to anybody else who's interested: Don't bother with it unless you have Visual Studio Professional 2005 or later.
Karma: Terrifying (mostly affected by atrocities you've committed)
Huh? A Qt license is expensive, but once you have it you can create all the Qt apps you want. At least, that's what my Qt license says. I think you have been misinformed.
But, per application, recurring per year, its expensive
Again, there is no "per application" charge. The "per year" charge is if you want support -- if you don't want/need support, just buy the Qt license and don't renew it after a year. You'll still be able to use the version you bought indefinitely.
And should we port to Linux and Mac OS/X, our licensing fees for MSDN would be £453 (approx $1116) and our Qt fees would be $126,000).
Are you talking about porting a
I don't care if it's 90,000 hectares. That lake was not my doing.
A number of possible answers, with varying degrees of importance/truth depending on your opinions:
- Because QT is cross platform.
- Perhaps it saves enough development effort over the MS stuff that it is worth the cost.
- It has a GPL version on all the major desktop platforms, so fully OSS apps are possible
- Is compiled instead of interpreted
There are probably lots more differences between the platforms that I missed as well. Not all of them would favour QT. Depends what you're looking for I guess.
But it isn't surprising that QT is popular with much of the Slashdot crowd, since it is GPL and supports non-Windows platforms. So I'm not sure why one would even have to ask why people here prefer QT over MSDN and Visual Studio.
I haven't been on Redhat in awhile, so maybe it's still an issue there. I remember RPM being a bitch, but I haven't used RPM since 2002. On Ubuntu, I have exactly one version of libqt-mt installed, and it weighs in at about 11 megs. And because this is Kubuntu, it's installed already.
Don't thank God, thank a doctor!
Actually, in Qt we have a mandate for backwards binary compatibility. Only if it's an absolute necessity is binary compatibility broken, and I honestly can't think of a single time in the 4.x stream of code that we have done that. So, your "framework hell" argument is moot. Only the latest version of Qt is "needed", and should support all applications compiled for previous revisions of Qt4.
Trolltech has never licensed Qt per application. It's per developer seat per year. At our company we use Qt for most major development we do. The ease of use, flexibility, outstanding documentation, cross-platform capabilities, and excellent technical support we receive for the price makes it definitely worth the while. We couldn't develop nearly as much as quickly if we didn't have Qt. We've been using it since version 1.2, and have watched the toolkit mature over the last decade. We're a relatively small shop (5 developers) that has to turn around products quickly across a wide array of platforms. For the things Qt does, we haven't found anything that comes close to doing it better or more simply. The up-front cost is an easy sell to our management team, who are thrilled with our performance.
You mean like how iTunes and Safari look completely at home on Windows? Apple fans have double standards; they expect uniformity on the Mac and allow Apple software to stick out like a sore thumb on Windows. If an OS X user rejects my applications because the toolkit only looks 95% at home compared to other applications, it is their loss, not mine.