C++ GUI Programming with Qt 4 – Jasmin Blanchette; Mark Summerfield – 2nd Edition


The Only Official, Best-Practice Guide to Qt 4.3 ProgrammingUsing Trolltech’s Qt you can build industrial-strength C++ applications that run natively on Windows, Linux/Unix, Mac OS X, and embedded Linux without source code changes. Now, two Trolltech insiders have written a start-to-finish guide to getting outstanding results with the latest version of Qt: Qt 4.3.

Packed with realistic examples and in-depth advice, this is the book Trolltech uses to teach Qt to its own new hires. Extensively revised and expanded, it reveals today’s best Qt programming patterns for everything from implementing model/view architecture to using Qt 4.3’s improved graphics support. You’ll find proven solutions for virtually every GUI development task, as well as sophisticated techniques for providing database access, integrating XML, using subclassing, composition, and more. Whether you’re new to Qt or upgrading from an older version, this book can help you accomplish everything that Qt 4.3 makes possible.

Completely updated throughout, with significant new coverage of databases, XML, and Qtopia embedded programming Covers all Qt 4.2/4.3 changes, including Windows Vista support, native CSS support for widget styling, and SVG file generation.

Contains separate 2D and 3D chapters, coverage of Qt 4.3’s new graphics view classes, and an introduction to QPainter’s OpenGL back-end Includes new chapters on look-and-feel customization and application scripting Illustrates Qt 4’s model/view architecture, plugin support, layout management, event processing, container classes, and much more Presents advanced techniques covered in no other book-from creating plugins to interfacing with native APIs Includes a new appendix on Qt Jambi, the new Java version of Qt

View more
  • Part I: Basic Qt
    1. Getting Started 3
    Hello Qt 3
    Making Connections 5
    Laying Out Widgets 6
    Using the Reference Documentation 10
    2. Creating Dialogs 13
    Subclassing QDialog 13
    Signals and Slots in Depth 20
    Rapid Dialog Design 23
    Shape-Changing Dialogs 31
    Dynamic Dialogs 38
    Built-in Widget and Dialog Classes 39
    3. Creating Main Windows 45
    Subclassing QMain Window 46
    Creating Menus and Toolbars 50
    Setting Up the Status Bar 55
    Implementing the File Menu 57
    Using Dialogs 63
    Storing Settings 69
    Multiple Documents 71
    Splash Screens 74
    4. Implementing Application Functionality 77
    The Central Widget 77
    Subclassing QTableWidget 78
    Loading and Saving 84
    Implementing the Edit Menu 87
    Implementing the Other Menus 91
    Subclassing QTableWidget Item 95
    5. Creating Custom Widgets 105
    Customizing QtWidgets 105
    Subclassing QWidget 107
    Integrating Custom Widgets with QtDesigner 117
    Double Buffering 121

    Part II: Intermediate Qt
    6. Layout Management 141
    Laying Out Widgets on a Form 141
    Stacked Layouts 147
    Splitters 149
    Scrolling Areas 152
    Dock Windows and Toolbars 154
    Multiple Document Interface 157
    7. Event Processing 167
    Reimplementing Event Handlers 167
    Installing Event Filters 172
    Staying Responsive during Intensive Processing 175
    8. 2D Graphics 179
    Painting with QPainter 180
    Coordinate System Transformations 185
    High-Quality Rendering with QImage 193
    Item-Based Rendering with Graphics View 195
    Printing 217
    9. Drag and Drop 227
    Enabling Drag and Drop 227
    Supporting Custom Drag Types 232
    Clipboard Handling 237
    10. Item View Classes 239
    Using the Item View Convenience Classes 240
    Using Predefined Models 247
    Implementing Custom Models 252
    Implementing Custom Delegates 266
    11. Container Classes 273
    Sequential Containers 274
    Associative Containers 282
    Generic Algorithms 285
    Strings, Byte Arrays, and Variants 287
    12. Input/Output 295
    Reading and Writing Binary Data 296
    Reading and Writing Text 301
    Traversing Directories 307
    Embedding Resources 308
    Inter-Process Communication 309
    13. Databases 315
    Connecting and Querying 316
    Viewing Tables 322
    Editing Records Using Forms 324
    Presenting Data in Tabular Forms 330
    14. Multithreading 339
    Creating Threads 340
    Synchronizing Threads 343
    Communicating with the Main Thread 349
    Using Qt's Classes in Secondary Threads 356
    15. Networking 359
    Writing FTP Clients 359
    Writing HTTP Clients 368
    Writing TCP Client-Server Applications 371
    Sending and Receiving UDP Datagrams 381
    16. XML 387
    Reading XML with QXmlStream Reader 388
    Reading XML with DOM 395
    Reading XML with SAX 400
    Writing XML 404
    17. Providing Online Help 407
    Tooltips, Status Tips, and "What's This?" Help 407
    Using a Web Browser to Provide Online Help 409
    Using QText Browser as a Simple Help Engine 411
    Using QtAssistant for Powerful Online Help 414

    Part III: Advanced Qt
    18. Internationalization 419
    Working with Unicode 420
    Making Applications Translation-Aware 423
    Dynamic Language Switching 429
    Translating Applications 435
    19. Look and Feel Customization 439
    Using Qt Style Sheets 439
    Subclassing QStyle 454
    20. 3D Graphics 471
    Drawing Using OpenGL 471
    Combining OpenGL and QPainter 477
    Doing Overlays Using Framebuffer Objects 484
    21. Creating Plugins 491
    Extending Qt with Plugins 492
    Making Applications Plugin-Aware 502
    Writing Application Plugins 505
    22. Application Scripting 509
    Overview of the ECMA Script Language 510
    Extending Qt Applications with Scripts 519
    Implementing GUI Extensions Using Scripts 523
    Automating Tasks through Scripting 530
    23. Platform-Specific Features 543
    Interfacing with Native APIs 543
    Using ActiveX on Windows 547
    Handling X11 Session Management 559
    24. Embedded Programming 567
    Getting Started with Qt/Embedded Linux 568
    Customizing Qt/Embedded Linux 570
    Integrating Qt Applications with Qtopia 571
    Using Qtopia APIs 576
  • Citation

Leave us a comment

No Comments

Notify of
Inline Feedbacks
View all comments
Would love your thoughts, please comment.x