C++ GUI Programming with Qt 4, Second Edition
by Jasmin Blanchette; Mark Summerfield
Rapid GUI Programming with Python and Qt: The Definitive Guide to PyQt Programming
by Mark Summerfield
An Introduction to Design Patterns in C++ with Qt 4
by Alan Ezust; Paul Ezust
Programming with QT, 2nd Edition
by Matthias Kalle Dalheimer
C++ In a Nutshell, 1st Edition
by Ray Lischner
Programming with QT, 2nd Edition
by Matthias Kalle Dalheimer
As the standard for KDE desktop environment, Trolltechs Qt is a necessary basis for all programmers who want to develop cross-platform applications on Windows, Mac OS, Linux, and FreeBSD. A multitude of popular applications have been written in Qt including Adobe Photoshop Elements, Google Earth, Perforce Visual Client, and Skype.
Foundations of Qt Development is based on Qt 4.2, and is aimed at C++ programmers who want to become proficient using this excellent toolkit to create graphical applications that can be ported to all major platforms. The book is focused on teaching you to write your own code in addition to using existing code. And common areas of confusion are identified, addressed, and answered. Youll learn everything you need to know to get up and running fast, including
Widgets and layouts (including creating your own widgets!)
Dialog boxes and windows
The Interview Framework (models and views)
Drawing and printing
Internationalizing and localizing
Interacting with files, streams, and XML
Working with databases
Networking
Unit testing with Qt
Utilizing Qt as a Rapid Application Development tool
Building and using plug-ins
Utilizing timers and threading
Average Amazon.com® Rating: ![]()
![]()
![]()
![]()
Based on 4 Ratings
Good read - author knows the topic well - 2008-07-29
Reviewer Rating: ![]()
![]()
![]()
![]()
![]()
Qt is an interesting framework to work within, and is a fantastic answer to cross-platform nightmares that I've experienced. Instead of designing and/or reprogramming for each new platform (such as writing native software that you already have in Windows in C++ for Mac in Objective-C), Qt allows you to essentially program it once and then port to additional platforms.
The author understands the topic well, and this book is a must-have if you are interested in programming using Qt. I highly recommend this book. Aside from a couple small spelling and grammatical errors, this book is very well-structured and perfect for my needs.
Gets you up and running quickly - 2009-03-31
Reviewer Rating: ![]()
![]()
![]()
![]()
![]()
Qt has some of the most WONDERFUL documentation I've ever seen. It's concise, easy to read, and actually explains design tradeoffs and decisions. So some would call me silly for going out and trying to find a book on it. Yet while the Qt documentation is a great reference, it assumes a familiarity with the big picture. As a first timer to Qt and someone who's never been too comfortable with the ins and outs of a large toolkit, I needed something to take me from neophyte to understanding documentation reader. And this book did exactly that.
Foundations of Qt Development took me on a tour of what this large toolkit has to offer. I now have a pretty good "feeling" for Qt. Besides being able to put together small applications, I'm perfectly capable of jumping into the main Qt documentation and finding whatever I need for more ambitious projects. After reading this book, I can answer my own questions with the documentation in 5 minutes instead of the hours of confused searching it took me before. Moreover, I understand enough of the style and inner workings of Qt to jump in and start extending the toolkit without issue.
This guide wasn't without some small problems, but none were serious enough to keep me from recommending the book. The first chapter hits the reader with a lot of little details and is at odds with the more relaxed style of the rest of the book. Don't sweat memorizing every little thing in the first chapter, just get the general idea and move on. The rest of the problems were minor editing flaws. The text didn't match the code snippets in a few places, there were a few unclear words, etc. None of them are that serious, but they give the book a sort of unpolished or unfinished feel at times. It could definitely benefit from another editing pass in the next edition.
It should also be mentioned that this book uses C++ exclusively. Now that C++ is the only officially supported language that's not a big deal. But a prospective reader who plans to use Qt with an unofficial binding should keep that in mind. I would still recommend the book to the non-C++ user however; so many internal mechanisms of Qt are designed to work around C++'s idiosyncrasies that it's probably best for all users of Qt to understand it in its native language before attempting to use it from a foreign one.
I would easily recommend this book to someone wanting to start out with Qt. While it does have a couple editing flaws, none of them detracted from the content in any significant way.
Good intro but still needs more - 2008-12-05
Reviewer Rating: ![]()
![]()
![]()
![]()
![]()
I enjoy this book, and do recommend it to others. It has helped in the basics of getting Qt apps running. I feel there is alot more that can be added to a second volume, but then that's the world of programming texts. For right now though I'm off to see the wizard of the Qt API.
Could do with a bit of polishing - 2009-11-11
Reviewer Rating: ![]()
![]()
![]()
![]()
![]()
All in all this is quite a good introduction for someone who wants to get the "big picture" of Qt Programming before diving into the reference manuals. I should point out that given that QtCreator has come out since this book is written, this book is a little out of date, but some might argue that QtCreator is fancy wrapping of the old tools with a rather nice new editor.
The plan of the book is good, but there are a few faults that prevent me from giving it full marks.
The English is not that great. One mistake that comes up time and time again is a sentence form like the following example: "I use my car for going to work". Surely "I use my car to go to work" is better English.
There are rather obscure sentences (or are they perhaps just plain wrong?) like this:
"The word meta indicates that the word prefixed is about itself. So a meta-object is an object describing the object". It looks to me like
he's confusing self-referential and "meta". In any case it's not very clear, but thankfully the reader is likely to have seen the concept properly explained elsewhere.
The first time the author introduces signals he writes "A signal is a method that is emitted rather than executed when called". I don't know if any newbie will understand that, but if you hang on you will work out what he's trying to say a little later, but it can provoke a bit of an indigestion when you land on it.
Then there is a class (listing 1.10) where the user might not have noticed that the names of the signals and the slots are the same as in a class. The author writes: "It is important to remember that the names of the signals and the slots "just happen" to be the same an in MyClass". It is surely better to replace the word "remember" by "notice", because you don't usually remember something you haven't noticed.
People who start out in Qt don't all have a C++ background (they might have been C# programmers like me) so it would be nice to be gentle
on people who are not thoroughly conversant with C++. In one of the first examples the author provides a class declaration. To a C# programmer this might look like a class definition at first glance. The author goes on to say the function getText returns the value of the private field m_text. For a total C++ newbie this might look as if it says "from the above listing we can see that getText() returns the value of m_text. The potential misunderstanding could have been avoided by writing "we define getText to return m_text" and this would have taught the reader a bit about C++ without insulting the more experienced programmer. An alternative textbook C++ GUI Programming with Qt 4 (2nd Edition) (Prentice Hall Open Source Software Development Series) does provide an introduction to C++ for C# and Java programmers.
As I moved deeper into the book I began to get used to the style, and there were chapters where it was easy reading, I quite liked the chapters on files, widgets and database access. However the chapter on plugins seemed to be harder reading than it could have been. The example involving an ascii art plugin was strange because the first example of ascii art (a camel) really looked hand-crafted rather than the product of his plugin. The chapter was too full of hand waving and vagueness for my liking and I looked at the other book I mentioned above for relief, and found the other book much clearer. This alone could have me cut the book's rating down to 3.
Qt programming is harder on Windows than it is in Gnu/Linux. Just look at how many people on the forums are desperately trying to create a Postgres driver. It would be nice if a book like thus warned of some of the traps.
One other point: it would be nice if the user could download full programs for each of the samples he provides. On is often left wondering
what include files one should be using. For example I wrote a program that calls on the tr() function around strings only to find that the linker told me that this was an undefined function!. After I looked up tr in the index I noticed that it had been introduced in the text way before the first indexed occurrence.
Top Level Categories:
Programming
Sub-Categories:
Programming > C++
C++ > Library
C++ > Development Tools
Some information on this page was provided using data from Amazon.com®. View at Amazon >