83 PRENTICE
@ $3 HALL
PRENTICE HALL OPEN SOURCE SOFTWARE DEVELOPMENT SERIES
Programming
Second EditionContents
Series Bditor’s Note .....00...000 00 cccccecectetetee eee xd
BeveWORE lo Nae o he i Sereateesenner OE ee
Renae aa Weise xv
AM NEN a oc sce anes n enum ener emengarsoomecenenes: SEL
A Briof Hatory of Qte:scsssyerwsieneeygaecerei aie
Part I: Basic Qt
1. Getting Started . 3
Hello Qt. 3
Making Connections 5
Laying Out Widgets 6
Using the Reference Documentation .. 10
2: Creating Dinloga ties ah vsti IS
Subclassing QDialog .................5 sree eaarag ae
Signals and Slots in Depth ..... 20
Rapid Dialog Design .... 23
Shape-Changing Dialogs .. BL
Dynamie Dialogs : enh cece 38
Built-in Widget and Dialog Cie ce
8. Creating Main Windows 45
Subclassing Q@MainWindow . 46
Creating Menus and Toolbars ...............6000000eceeceeeeeee 50
Setting Up the Status Bar . 55
Implementing the File Menu 57
Using Dialogs . 63
Storing Settings . .. 69
Multiple Documents a
Splash Screens 744, Implementing Application Functionality ... 17
‘The Central Widget ........ 11
Subelassing QTableWidget 18
Loading and Saving . a 84
Implementing the Edit Menu 87
Implementing the Other Menus .. 91
Subclassing QTableWidgetltem .. 95
5. Creating Custom Widgets . 105
Customizing Qt Widgets ......... 105
Subclassing QWidget ............ 107
Integrating Custom Widgets with Qu Designer . naar 7
Double Buffering ..............-.... TPA ttiicces tal
Part II: Intermediate Qt
6, Layout Management 141
Laying Out Widgets on a Form . 141
Stacked Layouts 147
Splitters 149
Scrolling Areas 152
Dock Windows and Toolbars .... : ceeeeeeeeee 15d
Multiple Document Interface ....... maniihieanecetsses TOT
7. Event Processing 167
Reliaplemosting Brent Handiors 167
Installing Event Filters .. oe . 172
Staying Responsive auring iatasive! cess DP ecco wcorscenpes) 1B
8. 2D Graphics ee deadeneeetesessenessteessce 179
Painting with Painter .. 180
Coordinate System. ‘Transform: ations 185
High-Quality Rendering with QImage . renee: 188
Item-Based Rendering with Graphics View .. deaeale dia - 195
Printing... 02.10.00 217
82 Drag and Drop:cicsvessiea th a ee Mey 227
Enabling Drag and Drop . 207
Supporting Custom Drag Types 232
Clipboard Handling .. 23710.
iL
12.
13.
14.
15.
16.
Item View Classes
Using the Item View Convent Classes met
Using Predefined Models .............
Implementing Custom Models .
Implementing Custom Delegates .....
Container Classes ..
Sequential Containers ......
Associative Containers .....
Generic Algorithms . init
Strings, Byte Arrays, and Variants .
Input/Output ......,,.
Reading and Writing Binary Data .
Reading and Writing Text
‘Traversing Directories .....
Embedding Resources ..
Inter-Process Communication.
Databases
Connecting and Querying
Viewing Tables . ee
Editing Records Using Forms ......
Presenting Data in Tabular Forms .
Multithreading ....
Creating Threads ..
Synchronizing Threads .
Communicating with the Main Thread .
Using Qt’s Classes in Secondary Threads ........
Networking ............
Writing FTP Clients .
Writing HTTP Clients:
Writing TCP Client-Server Applications .. rence
Sending and Receiving UDP Datagrams...............2...5
Reading XML with QXmIStreamReader .
Reading XML with DOM ..............2.....0517.
18.
19,
20.
21.
22,
23.
Reading XML with SAX...
Writing XML ..... :
viding Online Help .
ais Status Tips, and “What! 's Thi o Hale, oo 5ae
Using a Web Browser to Provide Online Help ......
Using QTextBrowser as a Simple Help Engine
Using Qt Assistant for Powerful Online Help
Part III: Advanced Qt
Internationalization ac
Working with Unicode ...... iz
Making Applications Translation-Aware ..
Dynamie Language Switching
Translating Applications ..
Look and Feel Customization .
Using Qt Style Sheets .....
Subelassing QStyle
SDGraphics 2..0.5....000s0.ce0
Drawing Using OpenGL .
Combining OpenGL and QPainter ........,
Doing Overlays Using Framebuffer Objects
Creating Plugins ........
Extending Qt with Plugins 2
Making Applications Plugin-Aware
Writing Application Plugins .
Application Scripting
‘Overview of the ECMAScript Langiaga
Extending Qt Applications with Seripts
Implementing GUI Extensions Using Scripts
Automating Tasks through Scripting ...
Platform-Specific Features .
Interfacing with Native APIs ..
Using ActiveX on Windows ante
Handling X11 Session Management .....
er astel J
407
407
409
411
414
419
420
423
429
435
439
439
454
47.
47.
4TT
484
491
492
502
505
509
510
519
523
530
543
543
BAT
55924. Embedded Programming ........
Getting Started with QUEmbedded Linux
Customizing Qu/Embedded Linux :
Integrating Qt Applications with Qtopia
Using Qtopia APIS .....seccseeeree
Appendixes
A. Obtaining and Installing Qt ........
B. Building Qt Applications
C. Introduction to Qt Jambi ...............-..-..0.200 06:
D. Introduction to C++ for Java and C# Programmers .-
Index .
567
568
570
B71
576
589
593
605
623
665