Introduction to Design Patterns in C++ with Qt

Author:   Alan Ezust ,  Paul Ezust
Publisher:   Pearson Education (US)
Edition:   2nd edition
ISBN:  

9780132826457


Pages:   768
Publication Date:   29 September 2011
Format:   Hardback
Availability:   In Print   Availability explained
Limited stock is available. It will be ordered for you and shipped pending supplier's limited stock.

Our Price $158.37 Quantity:  
Add to Cart

Share |

Introduction to Design Patterns in C++ with Qt


Add your own review!

Overview

"This book fills a void between the many syntax-oriented programming texts that teach readers how to program in C++ with standard I/O (e.g., Deitel) and the relatively few books that assume a knowledge of OOP/C++ and emphasize GUI programming using higher-level frameworks (e.g., Blanchette). There are plenty of books on C++ programming but, with few exceptions, the user interface is constrained to either primitive terminal I/O, or closed-source, non-portable libraries (e.g., Microsoft Foundation Classes).    This book makes extensive use of Nokia’s excellent Qt system.Originally developed by Trolltech, ""Qt is a cross-platform C++ application framework developers can use to write single-source applications that run natively on Windows, Linux, Unix, Mac OS X and embedded Linux. Qt has been used to build thousands of successful commercial applications worldwide, and is the basis of the open source KDE desktop environment."" Most Linux distributions include a non-commercial version of Qt. In addition Qt is the basis for the standard Linux desktop, KDE and is used by more than an estimated 150,000 open source developers worldwide. "

Full Product Details

Author:   Alan Ezust ,  Paul Ezust
Publisher:   Pearson Education (US)
Imprint:   Prentice Hall
Edition:   2nd edition
Dimensions:   Width: 18.20cm , Height: 4.40cm , Length: 23.80cm
Weight:   1.358kg
ISBN:  

9780132826457


ISBN 10:   0132826453
Pages:   768
Publication Date:   29 September 2011
Audience:   Professional and scholarly ,  Professional & Vocational
Format:   Hardback
Publisher's Status:   Out of Print
Availability:   In Print   Availability explained
Limited stock is available. It will be ordered for you and shipped pending supplier's limited stock.

Table of Contents

Foreword     xv Preface     xix Preface to the Second Edition     xxii Acknowledgments     xxv About the Authors     xxx Part I: Design Patterns and Qt 4     1 Chapter 1: C++ Introduction     3 1.1 Overview of C++     3 1.2 A Brief History of C++     4 1.3 C++ First Example     5 1.4 Standard Input and Output     8 1.5 Introduction to Functions     11 1.6 qmake, Project Files, and Makefile     17 1.7 Getting Help Online     24 1.8 Strings     24 1.9 Streams     26 1.10 File Streams     29 1.11 Qt Dialogs for User Input/Output     34 1.12 Identifiers, Types, and Literals     37 1.13 C++ Simple Types     40 1.14 The Keyword const     52 1.15 Pointers and Memory Access     54 1.16 Reference Variables     60 1.17 const* and *const     61 1.18 Review Questions     64 Chapter 2: Top of the class     67 2.1 First, There Was struct     67 2.2 Class Definitions     69 2.3 Member Access Specifiers     71 2.4 Encapsulation     74 2.5 Introduction to UML     75 2.6 Friends of a Class     76 2.7 Constructors     77 2.8 Destructors     80 2.9 The Keyword static     81 2.10 Class Declarations and Definitions     86 2.11 Copy Constructors and Assignment Operators     88 2.12 Conversions     92 2.13 const Member Functions     95 2.14 Subobjects     97 2.15 Exercise: Classes     98 2.16 Review Questions     108 Chapter 3: Introduction to Qt     113 3.1 Style Guidelines, Naming Conventions     114 3.2 The Qt Core Module     116 3.3 QtCreator—An IDE for Qt Programming     119 3.4 Exercises: Introduction to Qt     120 3.5 Review Questions     121 Chapter 4: Lists     122 4.1 Introduction to Containers     122 4.2 Iterators     123 4.3 Relationships     129 4.4 Exercise: Relationships     132 4.5 Review Questions     134 Chapter 5: Functions     135 5.1 Overloading Functions     135 5.2 Optional Arguments     138 5.3 Operator Overloading     141 5.4 Parameter Passing by Value     146 5.5 Parameter Passing by Reference     148 5.6 References to const     152 5.7 Function Return Values     154 5.8 Returning References from Functions     154 5.9 Overloading on const     155 5.10 inline Functions     158 5.11 Functions with Variable-Length Argument Lists     162 5.12 Exercise: Encryption     164 5.13 Review Questions     167 Chapter 6: Inheritance and Polymorphism     168 6.1 Simple Derivation     168 6.2 Derivation with Polymorphism     177 6.3 Derivation from an Abstract Base Class     184 6.4 Inheritance Design     189 6.5 Overloading, Hiding, and Overriding     191 6.6 Constructors, Destructors, and Copy Assignment Operators     193 6.7 Processing Command-Line Arguments     198 6.8 Containers     204 6.9 Managed Containers, Composites, and Aggregates     206 6.10 Containers of Pointers     210 6.11 Review Questions     228 Chapter 7: Libraries and Design Patterns     234 7.1 Building and Reusing Libraries     236 7.2 Exercise: Installing Libraries     244 7.3 Frameworks and Components     247 7.4 Design Patterns     248 7.5 Review Questions     257 Chapter 8: QObject, QApplication, Signals, and Slots     259 8.1 Values and Objects     263 8.2 Composite Pattern: Parents and Children     264 8.3 QApplication and the Event Loop     272 8.4 Q_OBJECT and moc: A checklist     274 8.5 Signals and Slots     275 8.6 QObject Lifecycle     277 8.7 QTestLib     277 8.8 Exercises: QObject, QApplication, Signals, and Slots     282 8.9 Review Questions     282 Chapter 9: Widgets and Designer     283 9.1 Widget Categories     284 9.2 Designer Introduction     286 9.3 Dialogs     290 9.4 Form Layout     292 9.5 Icons, Images, and Resources     295 9.6 Layout of Widgets     298 9.7 Designer Integration with Code     306 9.8 Exercise: Input Forms     313 9.9 The Event Loop: Revisited     314 9.10 Paint Events, Drawing Images     323 9.11 Review Questions     325 Chapter 10: Main Windows and Actions     326 10.1 QActions, QMenus, and QMenuBars     327 10.2 Regions and QDockWidgets     337 10.3 QSettings: Saving and Restoring Application State     339 10.4 Clipboard and Data Transfer Operations     341 10.5 The Command Pattern     343 10.6 tr() and Internationalization     351 10.7 Exercises: Main Windows and Actions     352 10.8 Review Questions     353 Chapter 11: Generics and Containers     355 11.1 Generics and Templates     355 11.2 Generics, Algorithms, and Operators     362 11.3 Sorted Map Example     365 11.4 Function Pointers and Functors     368 11.5 Flyweight Pattern: Implicitly Shared Classes     371 11.6 Exercise: Generics     375 11.7 Review Questions     376 Chapter 12: Meta Objects, Properties, and Reflective Programming     378 12.1 QMetaObject—The MetaObject Pattern     378 12.2 Type Identification and qobject_cast     380 12.3 Q_PROPERTY Macro—Describing QObject Properties     383 12.4 QVariant Class: Accessing Properties     386 12.5 Dynamic Properties     389 12.6 MetaTypes, Declaring, and Registering     394 12.7 invokeMethod()     396 12.8 Exercises: Reflection     397 12.9 Review Questions     397 Chapter 13: Models and Views     399 13.1 Model-View-Controller (MVC)     400 13.2 Qt Models and Views     402 13.3 Table Models     414 13.4 Tree Models     424 13.5 Smarter Pointers     429 13.6 Exercises: Models and Views     431 13.7 Review Questions     433 Chapter 14: Validation and Regular Expressions     434 14.1 Input Masks     435 14.2 Validators     438 14.3 Regular Expressions     440 14.4 Regular Expression Validation     449 14.5 Subclassing QValidator     451 14.6 Exercises: Validation and Regular Expressions     454 14.7 Review Questions     456 Chapter 15: Parsing XML     457 15.1 The Qt XML Parsers     460 15.2 SAX Parsing     462 15.3 XML, Tree Structures, and DOM     466 15.4 XML Streams     476 15.5 Review Questions     479 Chapter 16: More Design Patterns     481 16.1 Creational Patterns     481 16.2 Memento Pattern     491 16.3 Façade Pattern     498 16.4 Review Questions     505 Chapter 17: Concurrency     506 17.1 QProcess and Process Control     506 17.2 QThread and QtConcurrent     522 17.3 Exercises: QThread and QtConcurrent     536 17.4 Review Questions     537 Chapter 18: Database Programming     539 18.1 QSqlDatabase: Connecting to SQL from Qt     541 18.2 Queries and Result Sets     546 18.3 Database Models     548 18.4 Review Questions     549 Part II: C++ Language Reference     550 Chapter 19: Types and Expressions      552 19.1 Operators     553 19.2 Statements and Control Structures     557 19.3 Evaluation of Logical Expressions     564 19.4 Enumerations     565 19.5 Signed and Unsigned Integral Types     567 19.6 Standard Expression Conversions     570 19.7 Explicit Conversions     574 19.8 Safer Typecasting Using ANSI C++ Typecasts     574 19.9 Overloading Special Operators     581 19.10 Runtime Type Identification     587 19.11 Member Selection Operators     590 19.12 Exercises: Types and Expressions     592 19.13 Review Questions     594 Chapter 20: Scope and Storage Class     595 20.1 Declarations and Definitions     595 20.2 Identifier Scope     597 20.3 Storage Class     606 20.4 Namespaces     610 20.5 Review Questions     615 Chapter 21: Memory Access     617 21.1 Pointer Pathology     618 21.2 Further Pointer Pathology with Heap Memory     620 21.3 Memory Access Summary     623 21.4 Introduction to Arrays     624 21.5 Pointer Arithmetic     626 21.6 Arrays, Functions, and Return Values     627 21.7 Different Kinds of Arrays     629 21.8 Valid Pointer Operations     629 21.9 Arrays and Memory: Important Points     632 21.10 Exercises: Memory Access     633 21.11 Review Questions     634 Chapter 22: Inheritance in Detail     635 22.1 virtual Pointers, virtual Tables     635 22.2 Polymorphism and virtual Destructors     638 22.3 Multiple Inheritance     642 22.4 public, protected, and private Derivation     650 22.5 Review Questions     652 Part III: Programming Assignments     653 Chapter 23: MP3 Jukebox Assignments     655 23.1 Phonon/MultiMediaKit Setup     657 23.2 Playlist     657 23.3 Playlists     658 23.4 Source Selector     659 23.5 Database Playlists     661 23.6 Star Delegates     661 23.7 Sorting, Filtering, and Editing Playlists     661 Appendix A: C++ Reserved Keywords     662 Appendix B: Standard Headers     664 Appendix C: Development Tools     666 Appendix D: Alan’s Quick Start Guide to Debian for Programmers     691 Appendix E: C++/Qt Setup     698 Bibliography     706 Index     709

Reviews

Author Information

Alan Ezust received his M.Sc in computer science from McGill University in Montreal. He currently works as a Nokia Certifi ed Qt Specialist for ICS (www.ics.com), a company that specializes in delivering training and professional services onQt software. He honed his teaching and courseware development skills at Learnix, and later at Objectivity, where he taught and/or wrote courses in Python, UNIX, C, C++, Java, Perl, Design Patterns, Froglogic Squish, and Object Oriented Databases. He lives in Victoria, BC, Canada.   Paul Ezust (Cambridge, Massachusetts) chaired Suffolk University’s Department of Mathematics and Computer Science for more than 30 years, leading development of computer science curricula based on Association for Computing Machinery guidelines. He has done extensive outside consulting, contract programming, and research in computational mathematics.

Tab Content 6

Author Website:  

Customer Reviews

Recent Reviews

No review item found!

Add your own review!

Countries Available

All regions
Latest Reading Guide

MRG2025CC

 

Shopping Cart
Your cart is empty
Shopping cart
Mailing List