Synopses & Reviews
"...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.
- Build powerful C++ GUI applications quickly and easily
- Design dialogs and main windows visually and in code
- Learn Qt's innovative typesafe signals and slots mechanism
- Use layouts to create forms that automatically size and scale
- Create custom signals, slots, events, and controls
- Program the ''Qt way'' with techniques for Qt 3.2 that'll work with Qt 4
- Code applications with menus, toolbars, dialogs, and drag and drop
- Utilize 2D and 3D graphics, multithreading, and networking
- Write database and XML applications
- Internationalize to reach foreign markets
- Exploit platform-specific-features like ActiveX
Already 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!
About the Author
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.
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.