C++ GUI Programming with Qt 4
Product Author Bios
Jasmin Blanchette, Trolltech's documentation manager and a senior developer, has worked at Trolltech since 2001. He is editor of Qt Quarterly, Trolltech's technical newsletter, and coauthored C++ GUI Programming with Qt 3.
Mark Summerfield works as an independent trainer and consultant specializing in C++, Qt, and Python. He was Trolltech's documentation manager for almost three years and coauthored C++ GUI Programming with Qt 3.
The Only Official Best-Practice Guide to Qt 4.1 Programming
Using Trolltech's Qt you can build industrial-strength C++ applications that run natively on Windows, Linux/Unix, Mac OS X, and embedded Linux--without making source code changes. With this book Trolltech insiders have written a start-to-finish guide to getting great results with the most powerful version of Qt ever created: Qt 4.1.
Using C++ GUI Programming with Qt 4 you'll discover the most effective Qt 4 programming patterns and techniques as you master 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.
- Includes new chapters on Qt 4's model/view architecture and Qt's new plugin support, along with a brief introduction to Qtopia embedded programming
- Covers all Qt fundamentals, from dialogs and windows to implementing application functionality
- Introduces best practices for layout management and event processing
- Shows how to make the most of Qt 4's new APIs, including the powerful new 2D paint engine and the new easy-to-use container classes
- Contains completely updated material in every chapter
- Presents advanced Qt 4 techniques covered in no other book, from creating both Qt and application plugins to interfacing with native APIs
- Contains an in-depth appendix on C++/Qt programming for experienced Java developers
The accompanying CD-ROM includes the open source edition of Qt 4.1.1 for Windows, Mac, Linux, and many Unixes, as well as MinGW, a set of freely available development tools that can be used to build Qt applications on Windows, and also the source code for the book's examples.
17 of 17 people found the following review helpful
Amazing real-world reference,
Amazon Verified Purchase(What's this?)
This review is from: C++ GUI Programming with Qt 4 (Paperback)This book is one of the best reference materials I have read. The author is clearly not regurgitating Trolltech's documentation but elegantly cranks out a series of real life applications.
I read this quite differently than other 'introductions to'. In fact, I initially ignored it. But when it came time to build my own code, I kept running into questions as to how a particular programming problem was approached 'the right way'. A reference manual only shows you what you can do and there is an abundance of literature out there which will show you all the minutiae of endless variations of function calls - theory.
This book showed me how to properly put together FTP sessions, build a graphical directory tree of my own and much else. I am less interested in 'what does the framework offer?' but 'how do I best accomplish this task?'. This only an author with real-world programming experience can answer. This book's teaching by example will get you started quicker in Qt... Read more
16 of 16 people found the following review helpful
If you want to learn QT4, this is your book!,
This review is from: C++ GUI Programming with Qt 4 (Paperback)I think that is a good book to learn QT4 for different reasons. One of those is that is a book plenty of examples. You can learn to program with QT4, without previously experience in QT.
Touch all the main aspects of QT (from beginning to advanced programming) in a good way.
The sequence of the chapters are adequate.
The examples in the book are clear and the code is self-explained, and It helps a lot to understand the main concepts explained in the book.
Definitively, It's a learner's book, not a reference's book.
A recommended book to learn QT programming.
10 of 10 people found the following review helpful
Qt book really helps get you started.,
Amazon Verified Purchase(What's this?)
This review is from: C++ GUI Programming with Qt 4 (Paperback)I've recently started GUI programming again after about 12 years doing other things, and I've never used Qt. I needed a book to get me started, and this one really worked well. It provides many examples and pieces of template code that help bootstrap whatever it is that you need to do. The major pieces of functionality are all covered, and the explanations are precise and understandable.
My one complaint for this book is that it doesn't cover everything in Qt. For more esoteric things you'll have to switch over to the Qt on-line documentation available at trolltech.com. I've read other reviewers' complaints that the information in this book is all available at the Qt web site. That may be true, but if you're just learning, this book presents things in a logical and subsetted way. Also, since it has an index, it's easier to look up a specific area of interest.
Overall, I highly recommend this book if you're just starting out with Qt and/or GUI programming... Read more
› See all 13 customer reviews...
Download the Index file from this title.
Download the Foreword from this book.
Table of Contents
A Brief History of Qt xv
Part I: Basic Qt
1. Getting Started 3
Hello Qt 3
Making Connections 5
Laying Out Widgets 6
Using the Reference Documentation 92. Creating Dialogs 13
Subclassing QDialog 13
Signals and Slots in Depth 20
Rapid Dialog Design 23
Shape-Changing Dialogs 29
Dynamic Dialogs 36
Built-in Widget and Dialog Classes 373. Creating Main Windows 43
Subclassing QMainWindow 44
Creating Menus and Toolbars 48
Setting Up the Status Bar 52
Implementing the File Menu 54
Using Dialogs 61
Storing Settings 67
Multiple Documents 68
Splash Screens 714. Implementing Application Functionality 73
The Central Widget 73
Subclassing QTableWidget 74
Loading and Saving 80
Implementing the Edit Menu 83
Implementing the Other Menus 87
Subclassing QTableWidgetItem 915. Creating Custom Widgets 101
Customizing Qt Widgets 101
Subclassing QWidget 103
Integrating Custom Widgets with Qt Designer 113
Double Buffering 116Part II: Intermediate Qt 6. Layout Management 137
Laying Out Widgets on a Form 137
Stacked Layouts 143
Scrolling Areas 148
Dock Widgets and Toolbars 150
Multiple Document Interface 1527. Event Processing 163
Reimplementing Event Handlers 163
Installing Event Filters 168
Staying Responsive During Intensive Processing 1718. 2D and 3D Graphics 175
Painting with QPainter 175
Painter Transformations 180
High-Quality Rendering with QImage 188
Graphics with OpenGL 1989. Drag and Drop 205
Enabling Drag and Drop 205
Supporting Custom Drag Types 210
Clipboard Handling 21510. Item View Classes 217
Using the Item View Convenience Classes 218
Using Predefined Models 225
Implementing Custom Models 230
Implementing Custom Delegates 24411. Container Classes 251
Sequential Containers 252
Associative Containers 260
Generic Algorithms 263
Strings, Byte Arrays, and Variants 26512. Input/Output 273
Reading and Writing Binary Data 274
Reading and Writing Text 279
Traversing Directories 285
Embedding Resources 286
Inter-Process Communication 28713. Databases 293
Connecting and Querying 294
Presenting Data in Tabular Form 299
Implementing Master-Detail Forms 30414. Networking 311
Writing FTP Clients 311
Writing HTTP Clients 320
Writing TCP Client-Server Applications 323
Sending and Receiving UDP Datagrams 33315. XML 339
Reading XML with SAX 339
Reading XML with DOM 344
Writing XML 34816. Providing Online Help 351
Tooltips, Status Tips, and "What's This?" Help 351
Using QTextBrowser as a Simple Help Engine 353
Using Qt Assistant for Powerful Online Help 356Part III: Advanced Qt17. Internationalization 361
Working with Unicode 362
Making Applications Translation-Aware 365
Dynamic Language Switching 371
Translating Applications 37618. Multithreading 381
Creating Threads 381
Synchronizing Threads 385
Communicating with the Main Thread 391
Using Qt's Classes in Secondary Threads 39619. Creating Plugins 399
Extending Qt with Plugins 400
Making Applications Plugin-Aware 408
Writing Application Plugins 41220. Platform-Specific Features 415
Interfacing with Native APIs 415
Using ActiveX on Windows 419
Handling X11 Session Management 43121. Embedded Programming 439
Getting Started with Qtopia 440
Customizing Qtopia Core 441
Appendix A. Installing Qt 447
Appendix B. Introduction to C++ for Java and C# Programmers 451
Downloadable Sample Chapter
Download the Sample Chapter related to this title.
This product currently is not for sale.
Get access to thousands of books and training videos about technology, professional development and digital media from more than 40 leading publishers, including Addison-Wesley, Prentice Hall, Cisco Press, IBM Press, O'Reilly Media, Wrox, Apress, and many more. If you continue your subscription after your 30-day trial, you can receive 30% off a monthly subscription to the Safari Library for up to 12 months. That's a total savings of $199.