Advanced QT programming
Creating Great Software with C++ and Qt4

Author:

Language: English
Cover of the book Advanced QT programming

Subject for Advanced QT programming

Approximative price 51.64 €

In Print (Delivery period: 14 days).

Add to cartAdd to cart
Publication date:
536 p. · 10x10 cm · Paperback
Master Qt?s Most Powerful APIs, Patterns, and Development Practices

 

Qt has evolved into a remarkably powerful solution for cross-platform desktop, Web, and mobile development. However, even the most experienced Qt programmers only use a fraction of its capabilities. Moreover, practical information about Qt?s newest features has been scarce?until now.

 

Advanced Qt Programming shows developers exactly how to take full advantage of Qt 4.5?s and Qt 4.6?s most valuable new APIs, application patterns, and development practices. Authored by Qt expert Mark Summerfield, this book concentrates on techniques that offer the most power and flexibility with the least added complexity.

 

Summerfield focuses especially on model/view and graphics/view programming, hybrid desktop/Web applications, threading, and applications incorporating media and rich text. Throughout, he presents realistic, downloadable code examples, all tested on Windows, Mac OS X, and Linux using Qt 4.6 (and most tested on Qt 4.5) and designed to anticipate future versions of Qt. The book

 

  • Walks through using Qt with WebKit to create innovative hybrid desktop/Internet applications
  • Shows how to use the Phonon framework to build powerful multimedia applications
  • Presents state-of-the-art techniques for using model/view table and tree models, QStandardItemModels, delegates, and views, and for creating custom table and tree models, delegates, and views
  • Explains how to write more effective threaded programs with the QtConcurrent module and with the QThread class
  • Includes detailed coverage of creating rich text editors and documents
  • Thoroughly covers graphics/view programming: architecture, windows, widgets, layouts, scenes, and more
  • Introduces Qt 4.6?s powerful animation and state machine frameworks
List of Tables xiii

Foreword xv

 

Introduction 1

 

Chapter 1: Hybrid Desktop/Internet Applications 5

Internet-Aware Widgets 6

Using WebKit 21

 

Chapter 2: Audio and Video 53

Using QSound and QMovie 54

The Phonon Multimedia Framework 60

 

Chapter 3: Model/View Table Models 87

Qt’s Model/View Architecture 88

Using QStandardItemModels for Tables 90

Creating Custom Table Models 113

 

Chapter 4: Model/View Tree Models 129

Using QStandardItemModels for Trees 130

Creating Custom Tree Models 151

 

Chapter 5: Model/View Delegates 185

Datatype-Specific Editors 186

Datatype-Specific Delegates 188

Model-Specific Delegates 201

 

Chapter 6: Model/View Views 207

QAbstractItemView Subclasses 208

Model-Specific Visualizing Views 224

 

Chapter 7: Threading with QtConcurrent 245

Executing Functions in Threads 248

Filtering and Mapping in Threads 261

 

Chapter 8: Threading with QThread 287

Processing Independent Items 287

Processing Shared Items 302

 

Chapter 9: Creating Rich Text Editors 317

Introducing QTextDocument 318

Creating Custom Text Editors 320

A Rich Text Single Line Editor 342

Multi-line Rich Text Editing 353

 

Chapter 10: Creating Rich Text Documents 359

Exported QTextDocument File Quality 361

Creating QTextDocuments 364

Exporting and Printing Documents 371

Painting Pages 379

 

Chapter 11: Creating Graphics/View Windows 389

The Graphics/View Architecture 390

Graphics/View Widgets and Layouts 392

Introducing Graphics Items 399

 

Chapter 12: Creating Graphics/View Scenes 409

Scenes, Items, and Actions 411

Enhancing QGraphicsView 439

Creating a Dock Widget Toolbox 440

Creating Custom Graphics Items 447

 

Chapter 13: The Animation and State Machine Frameworks 469

Introducing the Animation Framework 469

Introducing the State Machine Framework 474

Combining Animations and State Machines 481

 

Epilogue 491

 

Selected Bibliography 495

 

Index 499

Mark Summerfield owns Qtrac Ltd., where he works as an independent consultant, programmer, author, editor, and trainer specializing in C++, Qt, Python, and PyQt. During nearly three years as documentation manager for Trolltech (now Nokia’s Qt Development Frameworks), he founded and edited the Qt Quarterly technical journal. His books include Rapid GUI Programming with Python and Qt (Prentice Hall, 2008) and Programming in Python 3, Second Edition (Addison-Wesley, 2010). With Jasmin Blanchette, he coauthored C++ GUI Programming with Qt 4, Second Edition (Prentice Hall, 2008).