C++ GUI Programming with Qt 3 428
C++ GUI Programming with Qt 3 | |
author | Jasmin Blanchette, Mark Summerfield |
pages | 464 |
publisher | Prentice Hall PTR |
rating | 9 |
reviewer | Alex Moskalyuk |
ISBN | 0131240722 |
summary | Practical introduction into GUI programming with Qt |
The first question that came to mind when I got this book - is there any need for it? Qt's Documentation is detailed and extensive with how-to's and an API reference available online for free. I have done GUI development in .NET (with C#) and Tk (with Perl) environments, and even though I've never tried Qt, the site with tutorials looked like a sufficiently good resource to start.
However, after getting through the first few chapters, religiously trying out the code, my opinions on whether a separate book is needed have changed. Jasmin Blanchette and Mark Summerfield's book can take a sufficiently clueless newbie with some C++ knowledge and guide him through the intricacies of GUI building, providing practical advice and some bits of experience on the way. You learn about the practicality of this book by turning to page 3 (with page 1 being the title) and seeing a code example as the second paragraph of the first chapter. Writing a basic GUI application in C++/Qt is attractively easy, to win you over and make you read the rest of the chapter, as well as finish the basic introduction by creating a windowed application with SpinBox and Slider widgets.
The table of contents is available on the publisher's Web site and looks fairly simple. Each chapter takes about 20-30 pages, with screenshots and code examples provided as part of the text. Reading the first 5 chapters, which comprise the "Basic Qt" section and take up 110 pages, should be enough for any C++ developer to build a sufficiently complex GUI application if all that's required is some graphical interface slapped on top of the functionality that's already there.
The rest of the book -- "Intermediate Qt" chapters -- take the reader into the common problems of GUI development, providing some insight into more advanced topics as well. Supporting networking, working with graphics and images, internationalization of the software application, interacting with help, reading XML through SAX and DOM APIs, accessing databases and doing inter-process communication are all covered here. The authors tended to avoid inserting huge amounts of reference material into the book, and, for example, in the XML chapter when working with Unicode you will be told to go online and download the numeric values of the Unicode characters instead of dedicating valuable book pages to it.
The language of the book is simple to follow; there are plenty of code examples (with discussion following each), and when the authors make certain choices, they also explain why. The diagrams and screenshots are clear (although not in color), and the code examples can be easily separated from the text. This is the first official TrollTech guide to Qt 3.2 programming, and the authors promise that the techniques will work with Qt 4.
Perhaps part of the positive impression that this book left is the fact that programming in Qt is easy and straightforward. At the early stages of my education, I started learning GUI programming with MFC, which left an indelible image of complexity and will probably increase psychiatrist bills in the future (to be fair to Microsoft, Windows Forms with .NET is a huge step forward). The book and the Qt library made some complex things sound quite simple and enjoyable to program. As Matthias Ettrich notes in the foreword to this book, the most important point in reasoning why Qt is so popular is "because programmers like it."
The book comes with a CD that contains non-commercial version of Qt 3.2 for Windows/Mac/Linux, Borland C++ 5.5 (Non-Commercial) and trial version of Borland C++ 6.0 compilers, SQLite database engine and book source code. The non-commercial version of Qt 3.2 for Windows can be installed for Borland C++ 5.5, Borland C++ 6.0, Microsoft Visual C++ 6 and Microsoft Visual C++.NET environments. The examples are quite conveniently located in folders with chapter numbers, followed by subfolders with example names.
Whether you're looking for general introduction to GUI development with C++ or trying to learn Qt, having worked with other libraries and toolkits before, this book is a good source of practical information and reference. The book is part of Perens' Open Source Series.
Alex Moskalyuk enjoys reading and reviewing books on programming and tech industry in general. You can read his other reviews on his personal site. You can purchase C++ GUI Programming with Qt 3from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
non commercial QT? (Score:2, Interesting)
Re:non commercial QT? (Score:3, Informative)
Re:non commercial QT? (Score:2)
-Benjamin Meyer
P.S. If anyone wants the Source code to Qt I am selling a GPL'd version for $1000 a copy (burned onto a DVD-R!). Just e-mail me.
Re:non commercial QT? (Score:3, Informative)
It's not libre free, but beer free. And it's old as hell. But the poster was correct that there is a "non-commercial" version for windows that's freely available. Be warned though that Trolltech's definition of "non-commercial" is rather peculiar.
I'm wondering if they'll make this new non-comm 3.2 edition similarly available.
In the meantime I continue to happily use FOX [fox-toolkit.org].
Re:non commercial QT? (Score:5, Informative)
There was, then there wasn't, now there is again. Trolltech withdrew the old non-comm version late last year because it was based on 2.3, and every other supported platform/license combination was on 3.x. The book includes a non-commercial version of 3.2 for Windows.
Re:non commercial QT? (Score:3, Informative)
Also, this non-commercial version does not appear to be available on the Trolltech website, so you'll need to get the book (and the text of the license for it doesn't appear to be available either, although I'd assume it's similiar to the 2.3 non-comm license).
Qt != write once, run anywhere (Score:5, Insightful)
Java class files are fundamentally different because you actually can run them anywhere without recompiling.
Re:Qt != write once, run anywhere (Score:5, Insightful)
This line was put up front for one reason. Kick dirt on java to attempt to get the C++ coders respect up front so they'll read my review.
Notice how Java reviews don't start with "since C++ requires so much double checking and almost certain memory leaks..."
Just another flame war awaiting to happen.
Re:Qt != write once, run anywhere (Score:3, Informative)
I just needed some opening line to introduce the concept of Qt's cross-platform nature. If the flamewar was the point, I'd post something like this [jwz.org].
Re:Qt != write once, run anywhere (Score:3, Insightful)
More like poor coding techniques lead to double-checking and memory leaks. If you force yourself to be strict with your coding style, then you'll find that only on the rarest of instances would you run into memory leaks.
Too many people are lazy coders, and this has led to a number of leaks, overruns, yada yada yada.
Re:Qt != write once, run anywhere (Score:2)
This should say "you pray that you can run them anywhere"
Just a correction.
Re:Qt != write once, run anywhere (Score:2)
Java is "Write once, and if a JVM exists on a particlar platform, run"
Note that the term "anywhere" is not appropriate for either case since there are many platforms that have neither a compiler nor a JVM.
Re:Qt != write once, run anywhere (Score:4, Informative)
Re:Qt != write once, run anywhere (Score:2, Informative)
The Java Virtual Machine is essentially an interpreter,
Re:Qt != write once, run anywhere (Score:2)
C++ (Score:4, Funny)
_________________________________
Re:C++ (Score:3, Insightful)
Re:C++ (Score:3, Insightful)
Umm, I'd say that's a loaded question. Any language is easy to code in once you know the syntax, its the higher thinking that's usually the hurdle, which is why I question why you lumped C and C++ together in your statement. C++ doesn't require you to use objects, but its the reason it was made, right? Someone that knows C and learns some of the C++ syntax and symbols (like the '>>' and such) can program C
Litany Against Syntax (Score:3, Funny)
As LISP coders will tell you, if you're having to think about the "sin tax", it's not user-friendly. Move past that. Think about the semantics. Or as the Bene Gesserit would say,
Re:C++ (Score:5, Funny)
Re:C++ (Score:4, Insightful)
Bruce
Re:C++ (Score:5, Funny)
Re:C++ (Score:4, Informative)
And if its portability would be so great, why did complete, standards-compliant compilers only get available recently? Why do many projects choose not to use exceptions or even templates to avoid portability problems?
Oh, and no, you cannot easily call C++ from other languages, unless you take the time to create 'extern "C"' wrappers for all functions, either manually or with some tool like swig. Otherwise name mangling, which is not standardized across implementations will bite you. You cannot even generally link two libraries compiled with different C++ compilers together.
Re:C++ (Score:5, Insightful)
This is due to the way C++ is generally taught or learned on ones own. Everyone and their mother seems to teach C++ as a C. They might throw in some small sections on classes and encapsulation, and if your lucky virtual methods. But STL? Exceptions? Christ, I didn't even know C++ had exceptions until way after I had read 2 different books on C++ and taken a C++ course. At that point, still no knowledge of C++ exceptions. Then I eventually bought "The C++ Programming Language" by Bjarne and have been completely enlightened by his examples and insight into the language.
You can't learn C++ by reading K&R.
Your other points are valid I think, I just wanted to make this point.
Re:C++ (Score:2)
Re:C++ (Score:2, Informative)
Re:C++ (Score:3, Insightful)
If people in generel knew more of C++ exceptions, the C-trolls would have much more ammunition. It is better simple not to talk about them.
The same goes partly for STL
Random mailings? (Score:2)
I got this book shipped to my door a few days ago.
I never ordered it. Had never heard of it. Not really interested in GUI programming.
Did the publishers just compile a list of people who know and talk about C++, and send them (us) free copies? Why? Do they hope we'll suddenly become interested enough to read a few hundred pages, because, hey, free book?
Erm... (Score:2)
Re:Random mailings? (Score:2)
That's exactly correct - enjoy your free book! The publisher is hoping that you'll have the knowledge to be capable of writing legitimate review (i.e., not one of those OSNews "The background color is ugly!" jobs), and the gratitude to make it positive. It's standard operating procedure.
Personally I like wxWindows (Score:5, Interesting)
Advantages of wxWindows:
Fully Cross Platform
Easy to learn API
Object Oriented model is well suited to GUI construction - 1 class = 1 screen object
You really should check it out - www.wxwindows.org
Re:Personally I like wxWindows (Score:4, Insightful)
Doesn't Qt have those same advantages?
Re:Personally I like wxWindows (Score:4, Insightful)
Re:Personally I like wxWindows (Score:5, Interesting)
I ported a Qt application to wxWindows because we couldn't afford to buy any more Qt licenses for more developers. Not much had been written in Qt, so it didn't seem like it would be a big deal. But man can I tell you that moving from Qt, where things just worked, to wxWindows was a pain.
Things as simple as changing the mouse cursor didn't always work (yes, I submitted a bug report along with a fix). wxWindows enforces a particular widget hierarchy which also implies a line of communication (you always communicate up the widget stack through events, and down the widget stack through methods).
The documentation was not always correct. And so far as being cross platform, a large number of widgets have comments along with them such as, "On Windows, feature X and Y are supported. Using GTK, only Feature X is supported.".
Extending widgets is not as simple as it should be. I needed a toggle button with an image, so I derived a class from the toggle button class and added a handler for the paint event only to find that no paint event is generated or handled for the toggle button! How the hell it paints itself is beyond me, but placing the same paint handling code into a frame derived class worked fine. This kind of inconsistency drives a developer up a wall!
Other anoyances include wxWindows changing the colors of my mouse pointers (if I wanted the foreground to be black, I would have made it black!) and the limitation of two color mouse pointers. I had full color mouse pointers in Qt so there should be some way of doing it in wxWindows.
That being said, I did like some of the features of wxWindows. The event handler stack is a neat implementation and I ended up using it heavily. It was easy to add my own event types, though this is another case where some of the documentation is just flat out wrong.
Re:Personally I like wxWindows (Score:3, Informative)
The major point of wxWindows is that it uses native, not emulated widgets (unlike all other cross platform toolkits that I'm aware of).
Re:Personally I like wxWindows (Score:2)
Re:Personally I like wxWindows (Score:2, Informative)
like DAldredge said - wxWindows doesn't cost you money, ever. And your comment about "maybe you get what you pay for" is absurd.
SciTech Display doctor was written using wxWindows - here is a screen shot: http://www.wxwindows.org/screen50.htm [wxwindows.org]
Even AOh3ll uses wxWindows in their apps
Re:Personally I like wxWindows (Score:2, Informative)
Turns out this can be good or bad, depending on your point of view. Personally, I think it's a good thing.
Re:Personally I like wxWindows (Score:2)
Still buggy.
More difficult to get up and running on different platforms than, say java or Qt
Python bindings are bad (not %100 implemented, little if any documentation that says so)
Decent, but not a clean API
To each his own, but after working with Qt and Java/Swing, I found wxWindows a very hackish UI toolkit. Not to say it doesn't do the job, but I wouldn't recommend it.
Re:Personally I like wxWindows (Score:5, Interesting)
Bruce
Re:Personally I like wxWindows (Score:5, Informative)
Thanks
Bruce
Re:Personally I like wxWindows (Score:2)
Re:Personally I like wxWindows (Score:2)
Qt doesn't require Visual C++ either -- it also supports Borland's free C++ compiler, which my company has been using with good results for 2 years now.
Re:Personally I like wxWindows (Score:2)
WxRuby [rubyforge.org]
WxPython [wxpython.org]
Good stuff.
Re:Personally I like wxWindows (Score:2)
Another Wx fan here. Low restrictions. (Score:2, Interesting)
Quote from the FAQ:
"
KAutoConfig (Score:5, Interesting)
[Speal about what it is/does]
Do you want to add a full fledged configure dialog to your Qt application by only writing one, twenty line function? If so than the KAutoConfig library is what you want. KAutoConfig is several classes that enables a developer to easily create a configure dialog for their applications. It automatically syncs GUI widgets values with values in the configuration file. It does this by looking for keys and widgets that have the same name. It obtains the default values from the initial values of the widgets. KAutoConfigDialog also manages all of the buttons in a normal configure dialog.
-Benjamin Meyer
Qt. (Score:5, Interesting)
Not to mention the great I18N possibilities, the great XML-based Qt Designer application, etc, etc.
All in all, there are very few drawbacks to Qt, other than the commercial price -- but hey, if you're an open source developer, you get it for free. Otherwise, your employer will get his money's worth back -- simply due to the fact that Qt is such an excellent product.
(No, I don't work for TT -- I just enjoy their products very much)
Re:Qt. (Score:2)
Try gtkmm [gtkmm.org] if you like signals and slots. No preprocessor required with gtkmm, either - IIRC, Qt relies on moc or something like that to preprocess C++ source
Re:Qt. (Score:3, Informative)
This is true, but it's not a problem in practice. Qt's qmake program generates a nice makefile for each platform that handles all the details for you, and you never really notice the moc files are there.
Re:Qt. (Score:2)
I'm not familiar with Qt. Could anyone sketch to what extent this model is like or unlike Cocoa's "outlets" and "connections"?
Re:Qt. (Score:2)
This is also simple using the Swing API (in Java). You can just make an anonymous inner class by overriding a standard adapter class provided by the API. For example (from Sun's Java Tutorial [sun.com]):
- Brian
But (Score:2)
Re:Qt. (Score:3, Informative)
That is all well and good, and in theory, it works just fine (well, in practice too, I guess), but the reason that I like to use Qt is that there is a seperate syntax to defining slots and signals. It makes it much easier to read if you skim down your class prototype and the word 'slot' or the word 'signal' appear by themselves. To me that is very clear, and though it requires the use of a precpocessor step, who gives a darn. learn to use a makefile.
The signals and slots as you've shown look no differ
Re:Qt. (Score:3, Interesting)
Finally I said "What the heck, let me try QT", and I was awed by how simple it was to get it to work. It
Re:Qt. (Score:2)
No, that's the opposite of true. Where did you hear that?
You can download Qt 3.3 GPL version for unix here:
http://www.trolltech.com/download/qt/x11.h
Re:Qt. (Score:2)
This is nonsense. I think you're confusing the GPL'ed X11 Qt with the non-comercial version of Qt for MS-Windows.
GPL'ed software cannot have a limitation such as being non-comercial imposed upon it.
- Brian
Qt / GTK (Score:3, Interesting)
I ask anyone who's developed in either/both of GTK/Qt, and even those with Win32 experience. What advantages does Qt have over the other choices?
---
Re:Qt / GTK (Score:2)
GTK > *
Okay I'm done.
Re:Qt / GTK (Score:4, Informative)
I haven't programmed directly in the Win32 API beyond making a few calls from VB (back when I was forced to use that steaming pile...), but the general gist is that it is comparable to Xlib (which I have used a lot in the last year or so). Xlib, and therefore Win32 API, are quite painful to use extensively. Qt is light years easier and friendlier to use than either of the raw APIs mentioned above.
I had started GUI programming under Linux with GTK+. I used it (and it's C++ counterpart called GTK--, which was the whole reason I learned C++) as much as I could for a couple years before discovering Qt. I have been a Qt programmer since late 1998/early 1999 (or whenever version 1.44 was mainstream).
Qt, with its support applications (Qt Designer being the cream of the crop); its incredible documentation; and it's thoroughly well-designed API, was a dramatic step forward from GTK+/GTK--. It is, all by itself, a compelling reason to learn C++ if you don't already know it.
Before Java? (Score:3, Informative)
Plus, if we're gonna play those games then I was using Motif on variety of platforms in the early/mid nineties with C without a need for re-write.
So I hardly think QT is a defining standard for write-one-run-anywhere GUI development.
Re:Before Java? (Score:2)
but it was their "Monopoly" on said practice he was describing. which is an arbitrary judgement call, since they don't really have a monopoly on it in practice, but maybe a trademark on the phrase.
Re:Before Java? (Score:3, Informative)
Warning for "Qt Programming" (Score:3, Informative)
I had the misfortune to read a book on Qt by Patrick Ward called Qt Programming [gazonk.org]. I'm sorry, but it's got to be one of the worst books on this topic that I've ever seen.
Stay far, far away from it.
Language-Neutral GUI (Score:3, Interesting)
Re:Language-Neutral GUI (Score:4, Insightful)
I can think of some that do pretty well: GTK+ (usable from many different languages) and the Aqua widget set (usable from Objective-C, Java and C++ at least - probably more). For that matter, the Windows GUI is accessible from many languages.
All of them were written in C, which as a simple language, makes interfacing practical/possible. Simplicity has it's virtues. ;-)
Re:Language-Neutral GUI (Score:2, Informative)
and the Aqua widget set (usable from Objective-C, Java and C++ at least
While the Aqua widget set is accessible from a number of languages in the sense that the buttons look the same, the interfaces across the different languages definitely do not have the same level of parity. An example from Panther is metal buttons [apple.com] which are only accessible from Cocoa/Objective-C. Earlier versions of OS X even had more major interface elements unavailable to Carbon, such as sheets and drawers.
The underlying widget se
GNOME is trying... (Score:2)
Meh (Score:2)
Re:Language-Neutral GUI (Score:3, Informative)
I would say Java is less of a "monopoly" than Qt (Score:3, Interesting)
With Qt, it's either an expensive license (my company requires a senior VP approval for any software over $150) or your program is GPLed and Linux-only. I guess a clean room port would be Ok though?
I chose Java UI + JNI over embedded Qt before for just these reasons. For C++ programming, I just hope OpenStep really takes off.
This book is under an Open Source license (Score:5, Informative)
It's not the policy of my series to publish proprietary software on the accompanying CD. But there is some Borland stuff and a copy of Windows Qt on the CD. This is due to a mis-communication with my publisher. I found out about it very late in the process (as I was reading a galley proof), and decided to allow the deviation from policy this time rather than cause a tremendous hassle for Troll Tech. The book had already been advertised, and orders had been booked from stores, etc.
Thanks
Bruce
Re:This book is under an Open Source license (Score:2)
Cool. Thanks.
Re:This book is under an Open Source license (Score:3, Insightful)
Make sure you have the right to port that program. No problem if you're the copyright holder. Note that there is a copyright issue regarding porting GPLed KDE programs to commercial Qt on Windows. At the least, you should get written permission from all copyright holders.
Thanks
Bruce
Programming with Qt - O'Reilly (Score:3, Interesting)
Free windows version?? (Score:2)
Pronunciation of Qt. (Score:3, Funny)
More like bastardized C++ (Score:2, Insightful)
C++ has been my language of choice for the past 10 or so years, but it's sad to see the bastardization happening all over by these toolkits.
Someone buy Trolltech and LGPL it...PLEASE! (Score:4, Insightful)
I am involved with a university research project. We started developing our app using QT, but had to quickly abandon it due to the GPL issue. Due to complications with funding and grants, we can't currently open-source our project. And we will not be obtaining QT Developer's licenses for the following reasons:
1. The bureaucratic mess. A proposal would have to be written, alternatives examined, and so forth. This could take too long. This crap is the way many universities work...most software is given to us or obtained very cheaply with academic licenses.
2. Cost. $1550 goes a long ways in funding graduate students. Our research director would rather hire more students with the money saved. Even Microsoft Visual Studio, which includes far more than GUI widgets, is only a couple hundred bucks for the academic edition.
I think this is one example of why this is hurting the Linux movement. GTK is LGPL...QT should be the same. I know that TrollTech needs to pay their developers, but I sure wish someone like IBM would buy them out and LGPL QT. For something intregal to a platform, such as GUI toolkits, having to spend $1500 for a license to develop a close-source application just isn't good. Also consider small-time shareware developers. I know that shareware isn't popular in Linux, but its a way for a developer to get payed for creating that unique, niche application
Of course my arguments are based on my opinion that KDE/QT is superior to Gnome/GTK, and that if it weren't for the license issue, it would be the dominant platform today.
Re:Someone buy Trolltech and LGPL it...PLEASE! (Score:3, Informative)
If you are producing something which is non-commercial, then there should be no issue with the GPL. You aren't selling it, so you don't need to distribute source. Moreover, you are working with a university, which absorbs public funds and has an obligation to contribute to public knowledge and development.
If the issue is that a private company is using you as a cheap research arm, producing a product for them, then they should easily be a
Re:Someone buy Trolltech and LGPL it...PLEASE! (Score:4, Insightful)
Qt is superior to gtk because it is created by professional developers, not college students.
Perhaps if you did some research into Trolltech's licenses you would figure out that Trolltech has Edu licenses as well.
It's LGPL that is hurting Linux, as Linux is about free software, LGPL is only about proprietary software. Do you really want Linux to have more non free, closed source, proprietary software??
Simple language (Score:4, Insightful)
This is so important. Some of the ... well, probably most of the C++ documentation is so complex that scares people off. Granted, the language is complex. But you can always present documentation in a friendly manner, with examples, and leave subtle points for a separate, advanced discussion. But I have the feeling that some C++ experts want to be part of an elite of a few enlightened people who know it. Too bad because it is a great language.
In this regard, Qt is a beautiful C++ toolkit, easy to use, really friendly, nicely integrated and documented. Not to mention the great RAD tools like QtDesigner ...
Re:SCOde? (Score:4, Informative)
So quit your whining.
Re:Resource (Score:2)
Re:Resource (Score:2)
Re:Resource (Score:2)
In this day and age there is no commercial software that isn't in some part mostly covered by an opensource one. And that is even truer to a greater degree with development tools.
FUBU.
Re:write once, runanywhere is more than a GUI tool (Score:2, Informative)
However, the generic OS interfaces provided by the Java class library don't cover much more ground than what the POSIX-ish API subset provided by Windows covers. So you can already write relatively portable code in C++ that will run on both *nix and Windows.
At any rate, if you're willing to drink the Qt kool-aid, Qt itself provides a bunch of portable generic utility classes to address this sam
Perl? Python? (Score:2)
If you want speed, then compile your software. Qt's GUI library is better than any for Java. No, really. I can't comprehend of anyone who has used both systems of prefering Java. Likewise, Python is a better language than Java
Re:I don't know about this book (Score:2, Funny)
Oh, I don't know there's a slight chance that Chapter 13. Networking might be remotely related to the topic you ask for?
Re:Licensing Fears (Score:2)
In any case, it is probably a moot point because TT would never do that. If they did, a fork would be started immediately by the OSS community,
Re:Licensing Fears (Score:2)
There is a GPL/QPL version available now. You can redistribute any software licenced under those licences, so they can't just stop you using it. If Qt development stops, the latest version will be released under a BSD style licence by the KDE free Qt foundation [kde.org]. So your fears are unfounded.
Re:Licensing Fears (Score:2)
The thing that scares me about GTK is taking the time to learn it and then one day SCO wins a lawsuit and then there isn't a GNU anymore. Life is full of uncertainties, and playing "what-if" all the time takes a lot of the fun out of life. Don't sweat the small shit, and remember - it's all small shit. Enjoy GTK, it's a great choice! They both are.
Re:Licensing Fears (Score:2)
Re:Four things I don't care about! (Score:5, Funny)
That carries about as much weight as saying, "I don't care about women because I can do everything with my hand."
Re:Four things I don't care about! (Score:2)
You can do everything in assembly too.
2) Qt
Then why read this article at all? I don't go to say, cheese-rolling.com and talk about how I'm not interested in rolling cheeses.
Re:Java's motto (Score:2)
BTW, That's sarcasm
Re:But is it true (Score:2)
However, in my experience the promise of write once/run anywhere holds pretty true. Until you start getting on different types
Re:Not C++ (Score:3, Informative)
Re:Off topic or On Target ??? (Score:2)
Canopy bought stock in Trolltech. Such things happen all the time. Canopy clearly had no control over the company at all, nor any real influence.
That answered your question enough?
Re:Qt4? (Score:3, Interesting)
Stay tuned...