Rapid GUI Programming with Python and Qt (Hardcover)
內容描述
Description
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 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