This book is a guide to writing applications for Linux, Microsoft NT 4.0, Windows 2000, Windows 95, and Windows 98, using the Qt software toolkit from Trolltech AS. As any respectable programming guide should, it provides a working knowledge of the Qt software distribution and the objects, widgets, and conveniences that the Qt toolkit provides. In addition, it explores some aspects of Qt programming for enterprise application development that are not obvious from the toolkit vendor's documentation.Audience
This book is for C++ programmers and students that want to write effective application software using the Qt toolkit. The focus is primarily on platform-independent software, but some platform-specific topics are unavoidably covered.Assumptions
This book is not a reference manual for the Qt objects and widgetsTrolltech has done an excellent job of providing reference documentation in HTML and Adobe Postscript formats. Their documentation is included with both the Qt-Free edition and the
Qt-Professional edition licenses, and is available from the Troll web site. trolltech
This book is written for both the experienced C++ programmer and the knowledgeable beginner. It is assumed the reader is familiar with standard C++ data types and how new data types are created. The reader should be familiar with the basic concepts of object-oriented (OO) design and implementation, particularly the concept of object inheritance. I have avoided using multiple inheritance in my examples for purposes of clarity, but the reader is encouraged to experiment.
While the title of this book implies a focus on Linux and Windows 2000, the actual scope is much larger. Most of the examples, as well as the code provided on the CD, will compile and function correctly on virtually any platform that Qt will.
If you are an experienced Microsoft developer, some of the coding style presented here may cause mild confusion. Please remember that with a few exceptions, the code presented in this book is intended for cross-platform use. As a result, you will seldom see references to DWORD, LPVOID, and LPSTR data types because they are undefined on platforms outside the Microsoft arena, and since most of the standard Unix data types are compatible with Windows development, they are used instead. The "correctness" of either is purely subjective.
Microsoft platform-specific examples require a Qt-Professional license. Licensing can be obtained directly from Trolltech, and is discussed in some detail in Chapter 1. While Qt software development can be done using the Borland compiler and tools, it is far more common for developers to use Microsoft Visual C++. As a result, it is assumed that the Windows developer has access to Microsoft Visual Studio 6.0 and VC98 (Visual C++).
It is possible, in theory, to compile and use Qt-Free edition applications on a Windows platform, using the Cygnus Win32 implementation, the ming32 compiler distribution, the X11R6.3 development kit for Win32, and an appropriate X server. Since this is an incredibly esoteric environment, it isn't addressed by any of the examples in this book. However, any of the Linux examples should work, assuming you succeed in compiling the Qt-Free edition with the Cygnus compiler distributionsomething I haven't tried yet.
Linux development can be accomplished using the Qt-Free edition. You will need a C++ compiler. This book assumes a generic gcc/g++ distribution (gcc-2.95 was used for the examples) from the Free Software Foundation (FSF), in the assumption that it is a reasonably low common denominator.
Many other platforms are supported out-of-the-box by Troll. I have had virtually no trouble using Qt on HP/UX or AIX.How This Book Is Organized
This book is organized into three parts. Part One is an introduction to the Qt toolkit. It provides some initial programming examples, and discusses some of the unique features that set Qt development apart from other toolkits. Part Two is a detailed discussion of toolkit components. Part Three discusses project-level considerations and debugging techniques.
Appendix A maps the contents of the accompanying CD-ROM. Appendix B (and the index) help to map the contents of this book.The Accompanying CD-ROM
The CD-ROM that comes with this book is in ISO9660 format with Joliet extensions (long filenames). The root directory of the CD-ROM contains a number of subdirectories with names that are (hopefully) descriptive of their contents. The only file in the root directory is a file named "contents.txt" that, surprisingly, contains a text map of what the CD-ROM contains, along with some brief descriptions of those contents.
Build state-of-the-art Qt graphical applications for Linux, UNIX, and Windows! Qt concepts, techniques, widgets, convenience classes, and extensions High-efficiency programming: object reuse, RAD techniques, internationalization, and more Coverage of Qt for Microsoft Windows (including Windows 2000): interfacing with Microsoft APIs, DDE, and more!!
"In addition to being a mighty fine Qt hacker, Ward is also a very nice guy with a good sense of humor. I think that's a perfect combination for writing a book like this one."Eirik Eng, President, Trolltech AS
State-of-the-art graphical applications for Linux, UNIX, and Windows!
For software developers, it's the holy grail: write one state-of-the-art graphical application that reaches all your key markets: Linux, UNIX, and Windows. Qt Programming for Linux and Windows shows experienced C++ programmers how to do just that, using the powerful new Qt toolkits-the same tools used to build the #1 Linux graphical user interface, KDE!
- Discover what you can do with Qt 2 Free Edition-and what requires TrollTech's Qt Professional License
- Master the Qt Toolkit and programming environment
- Understand Qt's signal/slot mechanism and framework for component-based development
- Review Qt's visual objects, convenience objects, and extensions
- Qt object reuse and internationalization techniques
- Incorporating Qt in Rapid Application Development processes
Long-time Qt developer Patrick Ward provides exclusive, in-depth coverage of Qt programming in Microsoft Windows environments: interfacing with Microsoft APIs, working with DDE servers and COM/DCOM, even Qt 2 development for Windows 2000.
If you're ready to build great graphical applications, build them fast, and run them anywhere, one book will show you how: Qt Programming for Linux and Windows 2000!
The accompanying CD-ROM contains the new Qt 2.1 Free Edition distribution, value-added Qt toolkit extensions, sample code, and more.