"...not only the best book on Qt I have ever seen, but also the best book presenting any programming framework. Every sentence appears to be carefully worded, and every chapter has a sound concept, and so does the work as a whole." --Matthias Ettrich, Trolltech's lead developer, founder of the KDE project"The 'Tao of Qt'...The Qt system is a beautiful example of object oriented design, and the authors take advantage of this...The authors have done an excellent job of presenting the subject in an interesting and engaging way..." --Ron McCarty, Instructor and Chair of the Department of Computer Science, Penn State Erie, The Behrend College. The first official Trolltech guide to Qt 3.2 programming!Straight from Trolltech, this book covers all you need to build industrial-strength applications with Qt 3.2.x and C++--applications that run natively on Windows, Linux/Unix, Mac OS X, and embedded Linux with no source code changes! The book teaches solid Qt programming practices; it is not a rehash of the documentation. You'll find start-to-finish coverage packed with examples, plus a CD with the Qt 3.2 toolset and Borland C++ compilers--including a non-commercial Qt 3.2 for Windows available nowhere else!
Build powerful C++ GUI applications quickly and easilyDesign dialogs and main windows visually and in codeLearn Qt's innovative typesafe signals and slots mechanismUse layouts to create forms that automatically size and scaleCreate custom signals, slots, events, and controlsProgram the "Qt way" with techniques for Qt 3.2 that'll work with Qt 4Code applications with menus, toolbars, dialogs, and drag and dropUtilize 2D and 3D graphics, multithreading, and networkingWrite database and XML applicationsInternationalize to reach foreign markets. Exploit platform-specific-features like ActiveXAlready using Qt or just starting out? Evaluating Qt or managing it? Building open source applications--or commercial applications? Want to develop for Windows without buying an expensive compiler? Whatever your goal, this is the only book you need! CD-ROM: Everything you need to write great GUI programs!Qt 3.2 Non-Commercial Edition for WindowsBorland C++ 5.5 Non-Commercial EditionBorland C++ 6.0 Trial EditionQt 3.2 Free Editions for Unix/Linux/Mac OS XSQLite databaseThe book's code examples
Table of Contents
Foreword. Preface. Acknowledgments. A Brief History of Qt. I. BASIC QT. 1. Getting Started. Hello Qt. Making Connections. Using the Reference Documentation. 2. Creating Dialogs. Subclassing QDialog. Signals and Slots in Depth. Rapid Dialog Design. Shape-Changing Dialogs. Dynamic Dialogs. Built-inWidget and Dialog Classes. 3. Creating Main Windows. Subclassing QMainWindow. Creating Menus and Toolbars. Implementing the File Menu. Setting Up the Status Bar. Using Dialogs. Settings. Multiple Documents. Splash Screens. 4. Implementing Application Functionality. The CentralWidget. Subclassing QTable. Loading and Saving. Implementing the Edit Menu. Implementing the Other Menus. Subclassing QTableItem. 5. Creating Custom Widgets. Customizing Qt Widgets. Subclassing QWidget. Integrating CustomWidgets with Qt Designer. Double Buffering. II. INTERMEDIATE QT. 6. Layout Management. Basic Layouts. Splitters. Widget Stacks. Scroll Views. Dock Windows. Multiple Document Interface. 7. Event Processing. Reimplementing Event Handlers. Installing Event Filters. Staying Responsive During Intensive Processing. 8. 2D and 3D Graphics. Painting with QPainter. Graphics with QCanvas. Printing. Graphics with OpenGL. 9. Drag and Drop. Enabling Drag and Drop. Supporting Custom Drag Types. Advanced Clipboard Handling. 10. Input/Output. Reading and Writing Binary Data. Reading and Writing Text. Handling Files and Directories. Inter-Process Communication. 11. Container Classes. Vectors. Lists. Maps. Pointer-Based Containers. QString and QVariant. 12. Databases. Connecting and Querying. Presenting Data in Tabular Form. Creating Data-Aware Forms. 13. Networking. Using QFtp. Using QHttp. TCP Networking with QSocket. UDP Networking with QSocketDevice. 14. XML. Reading XML with SAX. Reading XML with DOM. Writing XML. 15. Internationalization. Working with Unicode. Making Applications Translation-Aware. Dynamic Language Switching. Translating Applications. 16. Providing Online Help. Tooltips, Status Tips, and "What's This?" Help. Using QTextBrowser as a Simple Help Engine. Using Qt Assistant for Powerful Online Help. 17. Multithreading. Working with Threads. Communicating with the GUI Thread. Using Qt's Classes in Non-GUI Threads. 18. Platform-Specific Features. Interfacing with Native APIs. Using ActiveX. Session Management. Appendices. A: Installing Qt. A Note on Licensing. Installing Qt/Windows. Installing Qt/Mac. Installing Qt/X11. B: Qt's Class Hierarchy. Index.
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.