Jasmin Blanchette is a Trolltech senior software engineer and is writing his M.Sc. thesis in computer science at the University of Oslo.
Mark Summerfield works as an independent trainer and consultant specializing in C++, Qt, Python, and PyQt, and is the author of Rapid GUI Programming with Python and Qt. Blanchette and Summerfield coauthored C++ GUI Programming with Qt 3 and the first edition of C++ GUI Programming with Qt 4.
Series Editor's Note | p. xi |
Foreword | p. xiii |
Preface | p. xv |
Acknowledgments | p. xvii |
A Brief History of Qt | p. xix |
Basic Qt | |
Getting Started | p. 3 |
Hello Qt | p. 3 |
Making Connections | p. 5 |
Laying Out Widgets | p. 6 |
Using the Reference Documentation | p. 10 |
Creating Dialogs | p. 13 |
Subclassing QDialog | p. 13 |
Signals and Slots in Depth | p. 20 |
Rapid Dialog Design | p. 23 |
Shape-Changing Dialogs | p. 31 |
Dynamic Dialogs | p. 38 |
Built-in Widget and Dialog Classes | p. 39 |
Creating Main Windows | p. 45 |
Subclassing QMainWindow | p. 46 |
Creating Menus and Toolbars | p. 50 |
Setting Up the Status Bar | p. 55 |
Implementing the File Menu | p. 57 |
Using Dialogs | p. 63 |
Storing Settings | p. 69 |
Multiple Documents | p. 71 |
Splash Screens | p. 74 |
Implementing Application Functionality | p. 77 |
The Central Widget | p. 77 |
Subclassing QTableWidget | p. 78 |
Loading and Saving | p. 84 |
Implementing the Edit Menu | p. 87 |
Implementing the Other Menus | p. 91 |
Subclassing QTableWidgetItem | p. 95 |
Creating Custom Widgets | p. 105 |
Customizing Qt Widgets | p. 105 |
Subclassing QWidget | p. 107 |
Integrating Custom Widgets with Qt Designer | p. 117 |
Double Buffering | p. 121 |
Intermediate Qt | |
Layout Management | p. 141 |
Laying Out Widgets on a Form | p. 141 |
Stacked Layouts | p. 147 |
Splitters | p. 149 |
Scrolling Areas | p. 152 |
Dock Windows and Toolbars | p. 154 |
Multiple Document Interface | p. 157 |
Event Processing | p. 167 |
Reimplementing Event Handlers | p. 167 |
Installing Event Filters | p. 172 |
Staying Responsive during Intensive Processing | p. 175 |
2D Graphics | p. 179 |
Painting with QPainter | p. 180 |
Coordinate System Transformations | p. 185 |
High-Quality Rendering with QImage | p. 193 |
Item-Based Rendering with Graphics View | p. 195 |
Printing | p. 217 |
Drag and Drop | p. 227 |
Enabling Drag and Drop | p. 227 |
Supporting Custom Drag Types | p. 232 |
Clipboard Handling | p. 237 |
Item View Classes | p. 239 |
Using the Item View Convenience Classes | p. 240 |
Using Predefined Models | p. 247 |
Implementing Custom Models | p. 252 |
Implementing Custom Delegates | p. 266 |
Container Classes | p. 273 |
Sequential Containers | p. 274 |
Associative Containers | p. 282 |
Generic Algorithms | p. 285 |
Strings, Byte Arrays, and Variants | p. 287 |
Input/Output | p. 295 |
Reading and Writing Binary Data | p. 296 |
Reading and Writing Text | p. 301 |
Traversing Directories | p. 307 |
Embedding Resources | p. 308 |
Inter-Process Communication | p. 309 |
Databases | p. 315 |
Connecting and Querying | p. 316 |
Viewing Tables | p. 322 |
Editing Records Using Forms | p. 324 |
Presenting Data in Tabular Forms | p. 330 |
Multithreading | p. 339 |
Creating Threads | p. 340 |
Synchronizing Threads | p. 343 |
Communicating with the Main Thread | p. 349 |
Using Qt's Classes in Secondary Threads | p. 356 |
Networking | p. 359 |
Writing FTP Clients | p. 359 |
Writing HTTP Clients | p. 368 |
Writing TCP Client-Server Applications | p. 371 |
Sending and Receiving UDP Datagrams | p. 381 |
XML | p. 387 |
Reading XML with QXmlStreamReader | p. 388 |
Reading XML with DOM | p. 395 |
Reading XML with SAX | p. 400 |
Writing XML | p. 404 |
Providing Online Help | p. 407 |
Tooltips, Status Tips, and "What's This?" Help | p. 407 |
Using a Web Browser to Provide Online Help | p. 409 |
Using QTextBrowser as a Simple Help Engine | p. 411 |
Using Qt Assistant for Powerful Online Help | p. 414 |
Advanced Qt | |
Internationalization | p. 419 |
Working with Unicode | p. 420 |
Making Applications Translation-Aware | p. 423 |
Dynamic Language Switching | p. 429 |
Translating Applications | p. 435 |
Look and Feel Customization | p. 439 |
Using Qt Style Sheets | p. 439 |
Subclassing QStyle | p. 454 |
3D Graphics | p. 471 |
Drawing Using OpenGL | p. 471 |
Combining OpenGL and QPainter | p. 477 |
Doing Overlays Using Framebuffer Objects | p. 484 |
Creating Plugins | p. 491 |
Extending Qt with Plugins | p. 492 |
Making Applications Plugin-Aware | p. 502 |
Writing Application Plugins | p. 505 |
Application Scripting | p. 509 |
Overview of the ECMAScript Language | p. 510 |
Extending Qt Applications with Scripts | p. 519 |
Implementing GUI Extensions Using Scripts | p. 523 |
Automating Tasks through Scripting | p. 530 |
Platform-Specific Features | p. 543 |
Interfacing with Native APIs | p. 543 |
Using ActiveX on Windows | p. 547 |
Handling X11 Session Management | p. 559 |
Embedded Programming | p. 567 |
Getting Started with Qt/Embedded Linux | p. 568 |
Customizing Qt/Embedded Linux | p. 570 |
Integrating Qt Applications with Qtopia | p. 571 |
Using Qtopia APIs | p. 576 |
Appendixes | |
Obtaining and Installing Qt | p. 589 |
Building Qt Applications | p. 593 |
Introduction to Qt Jambi | p. 605 |
Introduction to C++ for Java and C# Programmers | p. 623 |
Index | p. 665 |
Table of Contents provided by Ingram. All Rights Reserved. |
The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.
The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.