If you are an application developer on various platforms, such as Windows, Mac OS X, Linux, and Unix, and if you are facing the challenge of creating user-friendly yet powerful graphical interfaces, then you may want to check out this treatise on the Qt application development framework that has already been used successfully in popular applications such as Google Earth, Skype, and Opera. This book introduces the Qt framework’s many features, and guides readers through the process of downloading and installation, as well as developing and testing applications using standardized, modular approaches.
The book begins with a foreword explaining Thelin’s motivation for writing this book. The main body comprises 16 chapters, organized into two parts: “Getting to Know Qt,” and “The Qt Building Blocks.” In the first four chapters, Thelin acquaints the reader with the Qt way of doing things, including using available classes and creating new classes that interact with the existing ones. The reader also learns about building a system and some available tools to make the Qt developers’s job easier. The concept of widgets and layouts is presented very clearly; some common widgets such as QPushButton, QLabel, and QLineEdit are introduced, along with their respective screen shots from major platforms.
Part 2 contains the core contents of the book. It looks at key components of Qt, and includes the following chapters: “The Model-View Framework”; “Creating Widgets”; “Drawing and Printing”; “Files, Streams, and XML”; “Providing Help”; “Internationalization and Localization”; “Plugins”; “Doing Things in Parallel”; “Databases”; “Networking”; “Building Qt Projects”; and “Unit Testing.”
The classes and techniques presented enable the reader to create and modify the Qt building blocks and create custom components for new applications. At the end of the book, there are two appendices and a detailed index. Appendix A is about third-party tools, and Appendix B is a reference to some containers, types, and macros for aiding the application developer.
The book has a nice layout and design, and provides reasonably adequate coverage of the subject for readers new to the Qt toolkit. Each chapter has a summary at the end that cohesively links to the next chapter. The length of the book is satisfactory.
This book is quite technical, requiring, ideally, a good working knowledge of C++ or Java programming languages for a detailed understanding of the content. Hands-on application programmers and developers will benefit directly. Software project managers who do not have an in-depth expertise in C++, Python, Ruby, or Java, will find Part 1 useful for acquiring some introductory knowledge of the Qt framework.