Same old, same new: 4.5 Technical Preview

I bet you're getting bored about this now... But apparently the blogosphere is now the vehicle of communication. Even our Marketing department decided that our cool, new homepage wasn't the forum for it... It's getting scary.

Anyways, if you were in the Qt Developer Days event last week in Munich, this comes as no surprise to you: Qt 4.5.0 Technical Preview is released. We promised the release by the end of the week, and then Friday came and we decided to go for a beer... but I digress.

What does this mean? Well, it means you get to see all of the cool new features we've been working on for the past few months (though you could already), as well improvements and fixes. For an idea of what we've done, you can look at past blogs and the TP website.

I know you all want a comprehensive list of what has been done, but I won't give you one. For one thing, we're not done -- only features are done.

One major area of improvement for this release was on QtWebKit. We upgraded it to's latest trunk, we added Netscape plugin support (yes, you can watch videos on YouTube), we added support for video and audio elements with Phonon, we added HTML5 client-side storage (SQLite), and so on. I don't even know all the guys did on WebKit.

Then there was that project that ported Qt to a new platform: Cocoa. Yes, this is technically a new port, even though it's the same operating system. Now you can build Qt and your applications on Mac OS X using that framework, which supports both 32- and 64-bit. You can make use of those 8 extra registers! Well, your compiler can... We also added a new Phonon backend for the Cocoa port, since the old QuickTime 7 one used libraries available in 32-bit only.

For Windows CE, we finished the features that had been missing from the 4.4 series: namely, WebKit and Phonon. So you can now see YouTube on a Windows CE device too! And for that, we had to add two new Phonon backends: one for DirectShow and a simpler one, called the "WaveOut".

Are you keeping track? That's three Phonon backends with 4.5, plus the three others we did for 4.4. The KDE community and outside communities have also provided three more (Xine, mplayer and VLC). They say the three is the charm, we're on three times three.

And then we also spent a lot of time doing performance improvements. Not that we don't do that normally, but this is the first time that we said: we're going to put major focus on performance. The results of that are a boost on several areas of Qt, mostly the painting and text. We'll publish some benchmarks and shiny graphics later on. One result of that focus on performance was the new pluggable graphics backend system: that means you can switch which paint engine you're going to use to draw. We offer you the native ones, the raster (software-based) one, and a new OpenGL-accelerated engine. (Be careful, some/most OpenGL implementations sacrifice perfection for performance, so you may see artifacts).

As a positive "side-effect" of the focus on performance was that we added benchmarking tools to QtTest, our unit-testing library. That's to help you create benchmarks for your code. We provide three backends for it: a time-based one, a valgrind/callgrind-based one and a third one. I don't remember what the third one is, but I know there's one (we seem to do everything in threes anyways).

Besides those main areas of focus, we also added XSL-T support to QtXmlPatterns; we added the QtScriptTools module and a QtScript debugger tool; we added support for creating OpenDocument (ODF) text straight out of our text engine classes; we added QSharedPointer; we added support for compressed SVGs; we added Gtk+ integration (the QGtkStyle style); we improved Qt Designer and Qt Linguist; ...

The technical preview is available under a special license at The Open Source GPL versions are at As for past pre-releases, please send feedback to the qt4-preview-feedback mailing list (see webpage for instructions on how to subscribe).

I hope you enjoy Qt 4.5 as much as we enjoyed making it!

Blog Topics: