Prentice Hall has published a new book, C++ GUI Programming with Qt 4, authored by Jasmin Blanchette and Mark Summerfield of Trolltech. Billed as "The Only Official Best-Practice Guide to Qt 4.1 Programming", readers will discover the most effective Qt 4 programming patterns and techniques as one masters key technologies ranging from Qt's model/view architecture to Qt's powerful new 2D paint engine. The authors provide readers with unparalleled insight into Qt's event model and layout system. Then, using realistic examples, they introduce superior techniques for everything from basic GUI development to advanced database and XML integration. You can read a sample chapter on the book's webpage.

Comments

I've used the old edition of the book (the free PDF that is avialable for download) to learn Qt 3. I liked the book a lot so I have already ordered the new edition. Can't wait for it to arrive. I hope that authors added a bit more material for new users of Qt this time. I had a feeling with the old edition that while it started nicely with simple Hello Qt example it later jumped too fast to more complicated stuff. If they improved this then the new edition could be almost perfect. Oh and it would be nice to have some intro chapter dedicated to Qtopia.

It is already delivered here :-) After browsing through the book it seemed to me that it is just an updated version of the previous book. That book was already good, so I guess this one will be even better. However, I don't think that there is much more introductionary material than in the previous version. (All right, I should have read it first before commenting on it.)

Please let us know more when you have looked at it more thoroughly. I hate it when companies just sprinkle a little new material and call it a new edition. If there aren't any real improvements than I'll stick to the PDF, but it has really improved then I'd happily buy another copy.

I have looked through the whole book now: the examples used are the same but they are updated; the text is often the same but sometimes it is rewritten somewhat; some new elements are added reflecting the new possibilities of Qt4, of course. In other words, it really is an updated version of the previous book, not a new book on Qt.

Well, compare the table of contents, and see for yourself: all the chapters and sections which more or less have the same title as in the previous book do more or less have the same content.

Just when i though this is cool and easy to use, reading the tree example was a rather disappointment:
"and with a Node * for the requested child. For hierarchical models, knowing
the row and column of an item relative to its parent is not enough to uniquely
identify it; we must also know who the parent is. To solve this, we can store a
pointer to the internal node in the QModelIndex. QModelIndex gives us the option
of storing a void * or an int in addition to the row and column numbers."
IMO, model/view is not only a memory saver when having one's own data structures, or like in these examples, having dependent cells, but also a stability improvement for when eiter having own data structures or with dynamic content.
Seperation of internal data and view is lost as soon as one uses QModelIndex to store a pointer. Having a path to parent would be better IMHO. And I don't see how one can easily 'fix' that, since allocating a path string and passing that pointer makes a memory leak (of course one could track all those strings, with some work for eg. seeing if a path is already created, that could actually work) and one can't overload QModelIndex AFAICS.

I never liked the books about programming libraries. Go read the bundled examples to get the basic idea how Qt works and afterwards just browse the apidoc when you need something. That is my approach and it usually works just fine. For example, yesterday I knew nothing about Qt's OpenGL widgets and just a few hints about OpenGL programming. Today I have a finished Qt OpenGL widget that visualises the object that I am controlling. It has textures, real-time display of what is going on and everything else I need. That is just a small part of the Control Systems project I am working on right now. Take a look at the screenshot http://i73.photobucket.com/albums/i213/brcha/nsu-opengl.png and you'll probably see that it looks all right (at least that's what I think). It is in Serbian, cyrillic, so you probably won't understand what the hell is written there, but that's not so important :)

I've only used the PDF a couple of times to help resolve actual programming questions (the API doesn't always provide a good overall view or define terms well), but I believe the book did give some useful insight in how Qt works.

Have you read any of the Qt 3 book? Perhaps I'm a big dork, but I just found it exciting to read as well.

Different people learn differently. The Qt documentation in assistant is mostly reference material, and is thus "what". The book is more expanatory and tutorial style, and is thus "how". Just because you don't want the book does not mean other people won't get any benefit from it.

This book is not recommended for beginners. This book hides the true level of complexity of using the Qt 4 compiler and putting everything together when you quickly look through the book in the store. The Qt4 GUI C++ programming environment that is on the CD is not an integrated development programming environment and does not have an editor with linker and complier that is activated with push of a button, it is a command line complier (you need to know some DOS) and you have to use a text editor such as Note Pad with it. The book gave the impression that it was a RAD type development type for GUI interface development that would automatically take care of the repetitive, non-trivial, and very difficult menial coding typical of purist C++ when using GUI objects.

This book is not recommended for beginners. This book hides the true level of complexity of using the Qt 4 compiler and putting everything together when you quickly look through the book in the store. The Qt4 GUI C++ programming environment that is on the CD is not an integrated development programming environment and does not have an editor with linker and complier that is activated with push of a button, it is a command line complier (you need to know some DOS) and you have to use a text editor such as Note Pad with it. The book gave the impression that it was a RAD type development type for GUI interface development that would automatically take care of the repetitive, non-trivial, and very difficult menial coding typical of purist C++ when using GUI objects.

This book is not recommended for beginners. This book hides the true level of complexity of using the Qt4 C++ GUI objects and putting everything together when you quickly look through the book in the store. The Qt4 GUI C++ programming environment that is on the CD is not an integrated development programming environment and does not have an editor with linker and complier that is activated with the push of a button, it is a command line complier (you need to know some DOS) and you have to use a text editor such as Note Pad with it. The book gave me the impression that it was a complete RAD type development system for GUI interface development that would automatically take care of the repetitive, non-trivial, and very difficult menial coding typical of purist C++ when using GUI objects. As a first time user, I was very disappointed with the C++ Qt4 GUI development environment that came with the book. There are no useful instructions on using the command line complier in the book.