Table of Contents
Foreword xiii Introduction 1 Part 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 561 Appendix B. Selected PyQt Widgets 575 Appendix C. Selected PyQt Class Hierarchies 581
Index 585