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

Integers and Long Integers 16

Floats and Decimals 17

Bytestrings, Unicode Strings, and QStrings 20

Collections 29

Tuples 29

Lists 31

Dictionaries 35

Sets 37

Built-in Functions 37

Summary 41

Exercises 42

Chapter 2. Control Structures 45

Conditional Branching 46

Looping 49

List Comprehensions and Generators 53

Functions 55

Generator Functions 58

Using Keyword Arguments 59

Lambda Functions 61

Dynamic Function Creation 62

Partial Function Application 63

Exception Handling 66

Summary 72

Exercises 72

Chapter 3. Classes and Modules 75

Creating Instances 77

Methods and Special Methods 79

Static Data, and Static Methods and Decorators 85

Example: The Length Class 86

Collection Classes 92

Example: The OrderedDict Class 92

Inheritance and Polymorphism 99

Modules and Multifile Applications 104

Using the doctest Module 105

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

Modal OK/Cancel-Style Dialogs 148

Smart Dialogs 154

Modeless Apply/Close-Style Dialogs 155

Modeless "Live" Dialogs 159

Summary 162

Exercise 163

Chapter 6. Main Windows 165

Creating a Main Window 166

Actions and Key Sequences 171

Resource Files 172

Creating and Using Actions 174

Restoring and Saving the Main Window's State 181

Handling User Actions 190

Handling File Actions 191

Handling Edit Actions 197

Handling Help Actions 200

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

Writing and Reading Using QDataStream 240

Writing and Reading Using the pickle Module 246

Saving and Loading Text Files 249

Writing and Reading Using QTextStream 250

Writing and Reading Using the codecs Module 255

Saving and Loading XML Files 256

Writing XML 256

Reading and Parsing XML with PyQt's DOM Classes 259

Reading and Parsing XML with PyQt's SAX Classes 262

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

Extension Dialogs 276

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

Handling Custom Data 313

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

Example: A Fraction Slider 331

Example: A Flow-Mixing Widget 339

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

Using QSyntaxHighlighter 382

A Rich Text Line Edit 389

Printing Documents 398

Printing Images 400

Printing Documents Using HTML and QTextDocument 401

Printing Documents Using QTextCursor and QTextDocument 403

Printing Documents Using QPainter 407

Summary 411

Exercise 412

Chapter 14. Model/View Programming 413

Using the Convenience Item Widgets 415

Creating Custom Models 423

Implementing the View Logic 424

Implementing the Custom Model 427

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

Installing on Windows 561

Installing on Mac OS X 566

Installing on Linux and Unix 570

Appendix B. Selected PyQt Widgets 575

Appendix C. Selected PyQt Class Hierarchies 581

Index 585

Was this article helpful?

0 0
Tube Jacker

Tube Jacker

Download Tube Jacker And Discover Everything You Need To Know About Jacking Unlimited Traffic From The Video Giant. The drop dead easy way to create winning video campaigns that will FLOOD your website with unstoppable FREE traffic, all on complete and total autopilot. How to exploit a sneaky method of boosting exposure and getting your videos to the top of Google within 72 hours, guaranteed.

Get My Free Ebook


Post a comment