Synopses & Reviews
The popular open source KDE desktop environment for Unix was built with Qt, a C++ class library for writing GUI applications that run on Unix, Linux, Windows 95/98, Windows 2000, and Windows NT platforms. Qt emulates the look and feel of Motif, but is much easier to use. Best of all, after you have written an application with Qt, all you have to do is recompile it to have a version that works on Windows. Qt also emulates the look and feel of Windows, so your users get native-looking interfaces.Platform independence is not the only benefit. Qt is flexible and highly optimized. You'll find that you need to write very little, if any, platform-dependent code because Qt already has what you need. And Qt is free for open source and Linux development.Although programming with Qt is straightforward and feels natural once you get the hang of it, the learning curve can be steep. Qt comes with excellent reference documentation, but beginners often find the included tutorial is not enough to really get started with Qt. That's whereProgramming with Qt steps in. You'll learn how to program in Qt as the book guides you through the steps of writing a simple paint application. Exercises with fully worked out answers help you deepen your understanding of the topics. The book presents all of the GUI elements in Qt, along with advice about when and how to use them, so you can make full use of the toolkit. For seasoned Qt programmers, there's also lots of information on advanced 2D transformations, drag-and-drop, writing custom image file filters, networking with the new Qt Network Extension, XML processing, Unicode handling, and more.Programming with Qt helps you get the most out of this powerful, easy-to-use, cross-platform toolkit. It's been completely updated for Qt Version 3.0 and includes entirely new information on rich text, Unicode/double byte characters, internationalization, and network programming.
Synopsis
Qt is a toolkit for building graphical user interfaces (GUIs) in Linux, Unix, and even Windows. Qt is much easier to use than the standard Motif toolkit for Unix systems, and its applications are portable from one environment to another. Qt can even emulate the look and feel of Windows in Unix, providing Windows users with native-looking interfaces.
As the popularity of Linux moves it closer to the mainstream, the need for guidance in generating user-friendly interfaces will increase. This is the book programmers will use to create a Qt-based GUI in Unix or Linux. Updated for Version 2.1, it shows how to use all of the Qt GUI elements, and covers advanced topics like 2D transformations and drag-and-drop, and a chapter on network programming.
Synopsis
The second edition of "Programming with Qt has been completely updated for Qt Version 3.0 and includes entirely new information on rich text, Unicode/double byte characters, internationalization, and network programming.Although programming with Qt is straightforward and natural once you get the hang of it, the learning curve can be steep. Beginners often find the reference documentation isn't enough. That's where "Programming with Qt comes in. You'll learn how to program in Qt as the book guides you through the steps of writing a simple paint application. This book examines every GUI element in Qt, demonstrating when and how to use each to make full use of the toolkit. Exercises with completely worked out answers reinforce your understanding. Even seasoned Qt programmers can learn from the material on advanced 2D transformations, drag-and- drop, and writing custom image file filters.
About the Author
Matthias Kalle Dalheimer is the President & CEO of Klaralvdalens Datakonsult AB, a Sweden-based consultancy specializing in platform-independent software solutions. He is also a founding member of the KDE project and the current president of the KDE foundation. Kalle has written numerous books for O'Reilly, both in English and in his native German, including "Running Linux" and "Programming with Qt". In his spare time, he enjoys cross-country skiing and reading history books. Kalle lives with his wife Tanja and his two sons Jan and Tim in the middle of the forest near Hagfors in the Swedish province of Varmland.
Table of Contents
Preface; A Productive Weekend; What You Should Know; Organization of This Book; Conventions Used in This Book; Comments and Questions; Acknowledgments; Chapter 1: Introduction; 1.1 Why GUI Toolkits?; 1.2 Why Portability?; 1.3 Why Qt?; 1.4 Implementing Cross-Platform GUI Libraries; 1.5 Acquiring Qt; 1.6 Compiling and Installing Qt; 1.7 C++ as Used by Qt; 1.8 Getting Help; Chapter 2: First Steps in Qt Programming; 2.1 Hello, world!; 2.2 Using the Qt Reference Documentation; 2.3 Adding an Exit Button; 2.4 Introduction to Signals and Slots; 2.5 Event Handling and Simple Drawings with QPainter; Chapter 3: Learning More About Qt; 3.1 Adding Menus; 3.2 Adding a Scrolled View; 3.3 Adding a Context Menu; 3.4 File I/O; Chapter 4: A Guided Tour Through the Simple Widgets; 4.1 General Widget Parameters; 4.2 Widget Styles; 4.3 Buttons; 4.4 Selection Widgets; 4.5 Widgets for Bounded-Range Input; 4.6 Scrollbars; 4.7 Menu-Related Widgets; 4.8 Arrangers; 4.9 Tab-Related Widgets; 4.10 Text-Entry Fields; 4.11 Labels; 4.12 Widgets for the Office; 4.13 Progress Bars; 4.14 Scrolled Views; 4.15 List Views; 4.16 Icon Views; 4.17 Widgets for Tabular Material; 4.18 Widgets for Displaying Rich Text; Chapter 5: A Guided Tour Through the Qt Dialog Boxes; 5.1 Predefined Dialog Boxes; 5.2 Building Blocks for Your Own Dialog Boxes; Chapter 6: Using Layout Managers; 6.1 Layout Manager Basics; 6.2 Laying Out Widgets in Rows and Columns; 6.3 Nested Layout Managers; 6.4 Grid Layout; 6.5 Implicit Geometry Management; Chapter 7: Some Thoughts on GUI Design; Chapter 8: Container Classes; 8.1 Available Container Classes; 8.2 Choosing a Container Class; 8.3 Working with Reference-Based Container Classes; 8.4 Working with Value-Based Container Classes; Chapter 9: Graphics; 9.1 Animations; 9.2 Printing; 9.3 Managing Colors; 9.4 Basic QPainter: Drawing Figures; 9.5 Advanced QPainter; 9.6 Double-Buffering and Other Nifty Techniques; 9.7 Independently Movable Objects with QCanvas; 9.8 Working with Styles; 9.9 Loading and Saving Custom Image Formats; 9.10 Setting a Cursor; Chapter 10: Text Processing; 10.1 Internationalization and Localization of On-Screen Text; 10.2 Validating User Input; 10.3 Working with Regular Expressions; 10.4 Reading and Writing XML Files; 10.5 Rich Text; Chapter 11: Working with Files and Directories; 11.1 Reading a Text File; 11.2 Traversing a Directory; 11.3 File Information; 11.4 Reading and Writing Configuration Data; Chapter 12: Interapplication Communication; 12.1 Using the Clipboard; 12.2 Drag-and-Drop; Chapter 13: Interfacing with the Operating System; 13.1 Working with Date and Time Values; 13.2 Loading Code Libraries Dynamically; 13.3 Spawning Child Processes; 13.4 Playing Sounds; Chapter 14: Writing Your Own Widgets; 14.1 Implementing a Coordinate Selector; 14.2 Implementing a Browse Box; Chapter 15: Focus Handling; Chapter 16: Advanced Event Handling; 16.1 Event Filters; 16.2 Sending Synthetic Events; Chapter 17: Advanced Signals and Slots; 17.1 Signals and Slots Revisited; 17.2 Connecting Several Buttons to One Slot; 17.3 Actions; Chapter 18: Providing Help; Chapter 19: Accessing Databases; 19.1 Installation of the SQL Module; 19.2 Connecting to a Database; 19.3 Simple Data Retrieval; 19.4 Data Retrieval with Cursors; 19.5 Data Display; 19.6 Data Manipulation; 19.7 Anything Else?; Chapter 20: Multithreading; 20.1 Configuring Qt for Multithreading; 20.2 Using Qt's Multithreading Classes; 20.3 Multithreading Pitfalls; 20.4 Alternatives to Multithreading; Chapter 21: Debugging; Chapter 22: Portability; 22.1 Why Portability Is Desirable; 22.2 How to Write Portable Programs; 22.3 Danger Ahead: When Even Qt Is Not Portable; 22.4 Building Projects Portably with qmake; Chapter 23: Qt Network Programming; 23.1 Low-Level Socket Access; 23.2 Higher-Level Network Access; Chapter 24: Interfacing Qt with Other Languages and