C++ GUI Programming with Qt3
The Qt toolkit is a C++ class library and a set of tools for building multiplatformGUI programs using a "write once, compile anywhere" approach. Qt letsprogrammers use a single source tree for applications that will run on Windows95 to XP, Mac OS X, Linux, Solaris, HP-UX, and many other versions ofUnix with X11.A version of Qt is also available for Embedded Linux, with thesame API.
The purpose of this book is to teach you how to write GUI programs using Qt 3.The book starts with "Hello Qt" and quickly moves on to more advanced topics,such as creating custom widgets and providing drag and drop. The text iscomplemented by a CDthat contains the source code of the example programs.The CD also provides Qt and Borland C++ for Windows, Qt for Unix, and Qtfor Mac OS X. Appendix A explains how to install the software.
The book focuses on explaining good idiomatic Qt 3 programming techniquesrather than simply rehashing or summarizing Qt's extensive online documentation.And because we are involved in the development of Qt 4, we have triedto ensure that most of what we teach here will still be valid and sensible forQt 4.
It is assumed that you have a basic knowledge of C++. The code examples usea subset of C++, avoiding many C++ features that are rarely needed whenprogramming Qt. In the few places where a more advanced C++ construct isunavoidable, it is explained as it is used.
Qt made its reputation as a multiplatform toolkit, but because of its intuitiveand powerful API, many organizations use Qt for single-platform development.Adobe PhotoshopAlbum is just one example of a mass-marketWindowsapplication written in Qt. Many sophisticated software systems in verticalmarkets, such as 3D animation tools, digital film processing, electronic designautomation (for chip design), oil and gas exploration, financial services, andmedical imaging, are built with Qt. If you are making a living with a successfulWindows product written in Qt, you can easily create new markets in theMac OS X and Linux worlds simply by recompiling.
Qt is available under various licenses. If you want to build commercialapplications, you must buy a commercial license; if you want to build opensource programs,you can use a non-commercial Qt edition. (The editions of Qton the CD are non-commercial.) Qt is the foundation on which the K DesktopEnvironment (KDE) and the many open source applications that go with itare built.
In addition to Qt's hundreds of classes, there are add-ons that extend Qt'sscope and power. Some of these products, like the Qt/Motif integration moduleand Qt Script for Applications (QSA), are supplied by Trolltech, while othersare provided by companies and by the open source community. See http://www.trolltech.com/products/3rdparty/ for information on Qt add-ons. Qt alsohas a well-established and thriving user community that uses the qt-interestmailing list; see http://lists.trolltech.com/ for details.
The book is divided into two parts. Part I covers all the concepts and practicesnecessary for programming GUI applications using Qt. Knowledge of thispart alone is sufficient to write useful GUI applications. Part II covers centralQt topics in more depth and provides more specialized and advanced material.The chapters of Part II can be read in any order, but they assume familiaritywith the contents of Part I.
What people are saying - Write a review
Using the Reference Documentation
Signals and Slots in Depth
Rapid Dialog Design
Supporting Custom Drag Types
Advanced Clipboard Handling
Reading and Writing Text
Handling Files and Directories
Creating Main Windows
Creating Menus and Toolbars
Implementing the File Menu
Setting Up the Status Bar
Implementing Application Functionality
Loading and Saving
Implementing the Edit Menu
Implementing the Other Menus
Creating Custom Widgets
Integrating Custom Widgets with Qt Designer
Multiple Document Interface
Installing Event Filters
Staying Responsive During Intensive Processing
2D and 3D Graphics
Graphics with QCanvas
Graphics with OpenGL
Drag and Drop
QString and QVariant
Presenting Data in Tabular Form
Creating DataAware Forms
TCP Networking with QSocket
UDP Networking with QSocketDevice
Reading XML with DOM
Making Applications TranslationAware
Dynamic Language Switching
Providing Online Help
Using QTextBrowser as a Simple Help Engine
Using Qt Assistant for Powerful Online Help
Communicating with the GUI Thread
Using Qts Classes in NonGUI Threads
Qts Class Hierarchy