Rapid GUI Programming with Python and Qt

Prentice Hall
Mark Summerfield  
Total pages
September 2015

Product detail

Product Price CHF Available  
Rapid GUI Programming with Python and Qt
66.30 approx. 7-9 days


The Insider's Best-Practice Guide to Rapid PyQt 4 GUI Development

Whether you're building GUI prototypes or full-fledged cross-platform GUI applications with native look-and-feel, PyQt 4 is your fastest, easiest, most powerful solution. Qt expert Mark Summerfield has written the definitive best-practice guide to PyQt 4 development.

With Rapid GUI Programming with Python and Qt you'll learn how to build efficient GUI applications that run on all major operating systems, including Windows, Mac OS X, Linux, and many versions of Unix, using the same source code for all of them. Summerfield systematically introduces every core GUI development technique: from dialogs and windows to data handling; from events to printing; and more. Through the book's realistic examples you'll discover a completely new PyQt 4-based programming approach, as well as coverage of many new topics, from PyQt 4's rich text engine to advanced model/view and graphics/view programming. Every key concept is illuminated with realistic, downloadable examples—all tested on Windows, Mac OS X, and Linux with Python 2.5, Qt 4.2, and PyQt 4.2, and on Windows and Linux with Qt 4.3 and PyQt 4.3.

Coverge includes

  • Python basics for every PyQt developer: data types, data structures, control structures, classes, modules, and more
  • Core PyQt GUI programming techniques: dialogs, main windows, and custom file formats
  • Using Qt Designer to design user interfaces, and to implement and test dialogs, events, the Clipboard, and drag-and-drop
  • Building custom widgets: Widget Style Sheets, composite widgets, subclassing, and more
  • Making the most of Qt 4.2's new graphics/view architecture
  • Connecting to databases, executing SQL queries, and using form and table views
  • Advanced model/view programming: custom views, generic delegates, and more
  • Implementing online help, internationalizing applications, and using PyQt's networking and multithreading facilities

Table of Contents

Foreword xiiiIntroduction 1Part I: Python Programming Chapter 1. Data Types and Data Structures 9

Executing Python Code 10

Variables and Objects 12

Numbers and Strings 15

Collections 29

Built-in Functions 37

Summary 41

Exercises 42

Chapter 2. Control Structures 45

Conditional Branching 46

Looping 49

Functions 55

Exception Handling 66

Summary 72

Exercises 72

Chapter 3. Classes and Modules 75

Creating Instances 77

Methods and Special Methods 79

Inheritance and Polymorphism 99

Modules and Multifile Applications 104

Summary 107

Exercises 108

Part II: Basic GUI Programming Chapter 4. Introduction to GUI Programming 111

A Pop-Up Alert in 25 Lines 112

An Expression Evaluator in 30 Lines 116

A Currency Converter in 70 Lines 121

Signals and Slots 127

Summary 136

Exercise 137

Chapter 5. Dialogs 139

Dumb Dialogs 141

Standard Dialogs 147

Smart Dialogs 154

Summary 162

Exercise 163

Chapter 6. Main Windows 165

Creating a Main Window 166

Handling User Actions 190

Summary 201

Exercise 202

Chapter 7. Using Qt Designer 205

Designing User Interfaces 208

Implementing Dialogs 216

Testing Dialogs 221

Summary 223

Exercise 224

Chapter 8. Data Handling and Custom File Formats 227

Main Window Responsibilities 229

Data Container Responsibilities 235

Saving and Loading Binary Files 240

Saving and Loading Text Files 249

Saving and Loading XML Files 256

Summary 265

Exercise 266

Part III: Intermediate GUI Programming Chapter 9. Layouts and Multiple Documents 269

Layout Policies 270

Tab Widgets and Stacked Widgets 272

Splitters 280

Single Document Interface(SDI) 283

Multiple Document Interface(MDI) 290

Summary 300

Exercise 301

Chapter 10. Events, the Clipboard, and Drag and Drop 303

The Event-Handling Mechanism 303

Reimplementing Event Handlers 305

Using the Clipboard 310

Drag and Drop 312

Summary 317

Exercise 318

Chapter 11. Custom Widgets 321

Using Widget Style Sheets 322

Creating Composite Widgets 325

Subclassing Built-in Widgets 326

Subclassing QWidget 328

Summary 345

Exercise 346

Chapter 12. Item-Based Graphics 349

Custom and Interactive Graphics Items 351

Animation and Complex Shapes 368

Summary 378

Exercise 379

Chapter 13. Rich Text and Printing 381

Rich Text Editing 382

Printing Documents 398

Summary 411

Exercise 412

Chapter 14. Model/View Programming 413

Using the Convenience Item Widgets 415

Creating Custom Models 423

Creating Custom Delegates 436

Summary 442

Exercise 443

Chapter 15. Databases 445

Connecting to the Database 446

Executing SQL Queries 446

Using Database Form Views 451

Using Database Table Views 457

Summary 470

Exercise 471

Part IV: Advanced GUI Programming Chapter 16. Advanced Model/View Programming 475

Custom Views 476

Generic Delegates 483

Representing Tabular Data in Trees 492

Summary 505

Exercise 505

Chapter 17. Online Help and Internationalization 509

Online Help 510

Internationalization 512

Summary 519

Exercise 520

Chapter 18. Networking 521

Creating a TCP Client 523

Creating a TCP Server 529

Summary 534

Exercise 534

Chapter 19. Multithreading 537

Creating a Threaded Server 539

Creating and Managing Secondary Threads 544

Implementing a Secondary Thread 552

Summary 557

Exercise 558

This Is Not Quite the End 559

Appendix A. Installing 561Appendix B. Selected PyQt Widgets 575Appendix C. Selected PyQt Class Hierarchies 581Index 585


Mark Summerfield works as an independent trainer and consultant specializing in C++, Qt, Python, and PyQt. He was Trolltech’s documentation manager from 2000 to 2004, was the founding editor of Qt Quarterly, Trolltech’s customer newsletter, and coauthored C++ GUI Programming with Qt 3 and C++ GUI Programming with Qt 4.