KDE 2/Qt Programming Bible phần 1 ppsx

74 215 0
KDE 2/Qt Programming Bible phần 1 ppsx

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

KDE 2/Qt Programming Bible Arthur Griffith IDG Books Worldwide, Inc. An International Data Group Company Foster City, CA ✦ Chicago, IL ✦ Indianapolis, IN ✦ New York, NY 4682-1 fm.f.qc 11/20/00 15:45 Page iii KDE 2/Qt Programming Bible Published by IDG Books Worldwide, Inc. An International Data Group Company 919 E. Hillsdale Blvd., Suite 400 Foster City, CA 94404 www.idgbooks.com (IDG Books Worldwide Web site) Copyright © 2001 IDG Books Worldwide, Inc. All rights reserved. No part of this book, including interior design, cover design, and icons, may be reproduced or transmitted in any form, by any means (electronic, photocopying, recording, or otherwise) without the prior written permission of the publisher. ISBN: 0-7645-4682-1 Printed in the United States of America 10 9 8 7 6 5 4 3 2 1 1B/RV/RS/QQ/FC Distributed in the United States by IDG Books Worldwide, Inc. Distributed by CDG Books Canada Inc. for Canada; by Transworld Publishers Limited in the United Kingdom; by IDG Norge Books for Norway; by IDG Sweden Books for Sweden; by IDG Books Australia Publishing Corporation Pty. Ltd. for Australia and New Zealand; by TransQuest Publishers Pte Ltd. for Singapore, Malaysia, Thailand, Indonesia, and Hong Kong; by Gotop Information Inc. for Taiwan; by ICG Muse, Inc. for Japan; by Intersoft for South Africa; by Eyrolles for France; by International Thomson Publishing for Germany, Austria, and Switzerland; by Distribuidora Cuspide for Argentina; by LR International for Brazil; by Galileo Libros for Chile; by Ediciones ZETA S.C.R. Ltda. for Peru; by WS Computer Publishing Corporation, Inc., for the Philippines; by Contemporanea de Ediciones for Venezuela; by Express Computer Distributors for the Caribbean and West Indies; by Micronesia Media Distributor, Inc. for Micronesia; by Chips Computadoras S.A. de C.V. for Mexico; by Editorial Norma de Panama S.A. for Panama; by American Bookshops for Finland. For general information on IDG Books Worldwide’s books in the U.S., please call our Consumer Customer Service department at 800-762-2974. For reseller information, including discounts and premium sales, please call our Reseller Customer Service department at 800-434-3422. For information on where to purchase IDG Books Worldwide’s books outside the U.S., please contact our International Sales department at 317-572-3993 or fax 317-572-4002. For consumer information on foreign language translations, please contact our Customer Service department at 800-434-3422, fax 317-572-4002, or e-mail rights@idgbooks.com. For information on licensing foreign or domestic rights, please phone +1-650-653-7098. For sales inquiries and special prices for bulk quantities, please contact our Order Services department at 800-434-3422 or write to the address above. For information on using IDG Books Worldwide’s books in the classroom or for ordering examination copies, please contact our Educational Sales department at 800-434-2086 or fax 317-572-4005. For press review copies, author interviews, or other publicity information, please contact our Public Relations department at 650-653-7000 or fax 650-653-7500. For authorization to photocopy items for corporate, personal, or educational use, please contact Copyright Clearance Center, 222 Rosewood Drive, Danvers, MA 01923, or fax 978-750-4470. Library of Congress Cataloging-in-Publication Data Griffith, Arthur. KDE 2/Qt programming bible / Arthur Griffith. p. cm. ISBN 0-7645-4682-1 (alk. paper) 1. C++ (Computer program language) 2. Graphical user interfaces (Computer systems) 3. Linux I. Title. QA76.73.C153.G7426 2001 005.13’3 dc21 00-047247 LIMIT OF LIABILITY/DISCLAIMER OF W ARRANTY: THE PUBLISHER AND AUTHOR HAVE USED THEIR BEST EFFORTS IN PREPARING THIS BOOK. THE PUBLISHER AND AUTHOR MAKE NO REPRESENTATIONS OR WARRANTIES WITH RESPECT TO THE ACCURACY OR COMPLETENESS OF THE CONTENTS OF THIS BOOK AND SPECIFICALLY DISCLAIM ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. THERE ARE NO WARRANTIES WHICH EXTEND BEYOND THE DESCRIPTIONS CONTAINED IN THIS PARAGRAPH. NO WARRANTY MAY BE CREATED OR EXTENDED BY SALES REPRESENTATIVES OR WRITTEN SALES MATERIALS. THE ACCURACY AND COMPLETENESS OF THE INFORMATION PROVIDED HEREIN AND THE OPINIONS STATED HEREIN ARE NOT GUARANTEED OR WARRANTED TO PRODUCE ANY PARTICULAR RESULTS, AND THE ADVICE AND STRATEGIES CONTAINED HEREIN MAY NOT BE SUITABLE FOR EVERY INDIVIDUAL. NEITHER THE PUBLISHER NOR AUTHOR SHALL BE LIABLE FOR ANY LOSS OF PROFIT OR ANY OTHER COMMERCIAL DAMAGES, INCLUDING BUT NOT LIMITED TO SPECIAL, INCIDENTAL, CONSEQUENTIAL, OR OTHER DAMAGES. Trademarks: All brand names and product names used in this book are trade names, service marks, trademarks, or registered trademarks of their respective owners. IDG Books Worldwide is not associated with any product or vendor mentioned in this book. is a registered trademark or trademark under exclusive license to IDG Books Worldwide, Inc., from International Data Group, Inc., in the United States and/or other countries. 4682-1 fm.f.qc 11/20/00 15:45 Page iv Eleventh Annual Computer Press Awards 1995 Tenth Annual Computer Press Awards 1994 Eighth Annual Computer Press Awards 1992 Ninth Annual Computer Press Awards 1993 IDG is the world’s leading IT media, research and exposition company. Founded in 1964, IDG had 1997 revenues of $2.05 billion and has more than 9,000 employees worldwide. IDG offers the widest range of media options that reach IT buyers in 75 countries representing 95% of worldwide IT spending. IDG’s diverse product and services portfolio spans six key areas including print publishing, online publishing, expositions and conferences, market research, education and training, and global marketing services. More than 90 million people read one or more of IDG’s 290 magazines and newspapers, including IDG’s leading global brands — Computerworld, PC World, Network World, Macworld and the Channel World family of publications. IDG Books Worldwide is one of the fastest-growing computer book publishers in the world, with more than 700 titles in 36 languages. The “ For Dummies ® ” series alone has more than 50 million copies in print. IDG offers online users the largest network of technology-specific Web sites around the world through IDG.net (http://www.idg.net), which comprises more than 225 targeted Web sites in 55 countries worldwide. International Data Corporation (IDC) is the world’s largest provider of information technology data, analysis and consulting, with research centers in over 41 countries and more than 400 research analysts worldwide. IDG World Expo is a leading producer of more than 168 globally branded conferences and expositions in 35 countries including E3 (Electronic Entertainment Expo), Macworld Expo, ComNet, Windows World Expo, ICE (Internet Commerce Expo), Agenda, DEMO, and Spotlight. IDG’s training subsidiary, ExecuTrain, is the world’s largest computer training company, with more than 230 locations worldwide and 785 training courses. IDG Marketing Services helps industry-leading IT companies build international brand recognition by developing global integrated marketing programs via IDG’s print, online and exposition products worldwide. Further information about the company can be found at www.idg.com. 1/26/00 Welcome to the world of IDG Books Worldwide. IDG Books Worldwide, Inc., is a subsidiary of International Data Group, the world’s largest publisher of computer-related information and the leading global provider of information services on information technology. IDG was founded more than 30 years ago by Patrick J. McGovern and now employs more than 9,000 people worldwide. IDG publishes more than 290 computer publications in over 75 countries. More than 90 million people read one or more IDG publications each month. Launched in 1990, IDG Books Worldwide is today the #1 publisher of best-selling computer books in the United States. We are proud to have received eight awards from the Computer Press Association in recognition of editorial excellence and three from Computer Currents’ First Annual Readers’ Choice Awards. Our best- selling For Dummies ® series has more than 50 million copies in print with translations in 31 languages. IDG Books Worldwide, through a joint venture with IDG’s Hi-Tech Beijing, became the first U.S. publisher to publish a computer book in the People’s Republic of China. In record time, IDG Books Worldwide has become the first choice for millions of readers around the world who want to learn how to better manage their businesses. Our mission is simple: Every one of our books is designed to bring extra value and skill-building instructions to the reader. Our books are written by experts who understand and care about our readers. The knowledge base of our editorial staff comes from years of experience in publishing, education, and journalism — experience we use to produce books to carry us into the new millennium. In short, we care about books, so we attract the best people. We devote special attention to details such as audience, interior design, use of icons, and illustrations. And because we use an efficient process of authoring, editing, and desktop publishing our books electronically, we can spend more time ensuring superior content and less time on the technicalities of making books. You can count on our commitment to deliver high-quality books at competitive prices on topics you want to read about. At IDG Books Worldwide, we continue in the IDG tradition of delivering quality for more than 30 years. You’ll find no better book on a subject than one from IDG Books Worldwide. John Kilcullen Chairman and CEO IDG Books Worldwide, Inc. 4682-1 fm.f.qc 11/20/00 15:45 Page v Credits Acquisitions Editors John Osborn Debra Williams Cauley Project Editor Kathi Duggan Technical Editor David Williams Copy Editor Luann Rouff Project Coordinators Louigene A. Santos Danette Nurse Graphics and Production Specialists Robert Bihlmayer John Greenough Jude Levinson Michael Lewis Gabriele McCann Victor Pérez-Varela Ramses Ramirez Quality Control Technician Dina F Quan Permissions Editors Laura Carpenter Laura Moss Media Development Specialists Laura Carpenter Travis Silvers Media Development Coordinators Laura Carpenter Marisa Pearman Illustrators Shelley Norris Rashell Smith Proofreading and Indexing York Production Services Cover Image Angela F. Hunckler Joyce Haughey About the Author Arthur Griffith has been programming computers for twenty-five years. He has several years of experience in graphics programming, including X11 and motif. His broad background includes oil and gas monitoring, satellite communications, insur- ance company databases, real-time controls, and hardware diagnostic systems. He specializes in writing computer language interpreters and compilers and has imple- mented several special-purpose languages. Among the books he has written are Java Master Reference and COBOL For Dummies. He is also the co-author of Peter Norton’s Complete Guide to Linux. Arthur now lives in Homer, Alaska, and is a full- time writer and teacher. You can contact him at arthur@belugalake.com. 4682-1 fm.f.qc 11/20/00 15:45 Page vi For Mary 4682-1 fm.f.qc 11/20/00 15:45 Page vii 4682-1 fm.f.qc 11/20/00 15:45 Page viii Preface I f you want to write a KDE application, you’ve come to the right book. This book is composed of numerous example programs, and each example is accompanied by an explanation. When exploring or learning something new about software, my personal preference is to have a simple example that shows me just what I want and nothing else. Software is complicated enough that it becomes impossible to explain all its nuances without offering examples, and an example can be very confusing unless the key parts of it are clearly visible and explained. Therefore, each example provided here is also a complete running program designed to demonstrate just one thing. The documentation of a program can be included as comments in the code, or it can be separate text supplied along with the code. The examples in this book have no embedded comments because each one is accompanied by text that explains it. Leaving out comments produces a cleaner format, making it easier for a reader to see the structure of the program. Most of the code is printed in the book with line numbers, so the explanations can refer to specific lines. What You Will Need If you know how to program in C++, have access to a Linux computer, and are able to download files from the Internet, this book will supply you with the know-how you need to write KDE applications. You can find a version of the development software on the CD, which is described in Appendix A. Alternatively, see Appendix B to find out how to get the latest ver- sion of everything. Appendix B contains a list of all the software you will need, and where it can be found on the Internet. Subject to Change KDE is large and powerful, and it is moving fast. Fortunately, it is also very friendly. 4682-1 fm.f.qc 11/20/00 15:45 Page ix x Preface Because KDE is an ongoing project, new things are being added constantly. This will likely be the situation for the foreseeable future. Because of its open source status, this growth will probably continue for the life of Linux and KDE. From time to time, new methods for getting things done are added to the API, and it is possible that some of the techniques described in this book will become outdated. But KDE is quite stable now, so everything in the book should continue to work even in the event of future changes. In some cases, if you run your applications from the command line, there will be some text output to the console window. This text may describe anything from a severe internal error to a simple piece of pertinent infor- mation for the developer of the class you are using. This is typical of open source development software, and symptomatic of software under development. Eventually, in later versions, these messages will go away. How to Use This Book The book is divided into three parts. The first part is one continuous tutorial cover- ing the basics of KDE programming. The second part is also composed of tutorials, but the chapters can be consulted in any order on an as-needed basis. The third part was not intended to be read sequentially — it is more of a reference section, as are Appendixes C through G. Appendix A or B: Installing the Software If you have a late model Linux on a CD, you will have most of the software and may have it all. If not, you have two options: You can install it from the CD supplied with this book, or you can retrieve it from the Internet. Appendix A discusses the CD, and Appendix B discusses the Internet. Chapter 20: From Win32 to KDE If you are a Win32 programmer, start by reading Chapter 20. This chapter is a point- by-point comparison of two simple programs that are identical except that one is written for Win32 and the other is written for KDE. Although there are some basic dif- ferences, the underlying concepts behind writing a KDE application are very much like those behind writing a Win32 application. For good measure, a GNOME program is also included so you can compare the relative structure of all three applications. Part I: Getting Started Part I starts with the basics and puts the pieces together until you are able to cre- ate applications that display buttons, labels, and other widgets, in whatever size, 4682-1 fm.f.qc 11/20/00 15:45 Page x xi Preface shape, and position you would like them to be. The first chapter explains some of the background information— mostly having to do with the Qt and KDE libraries and how the various classes are used to construct running programs. Chapter 2 is where the programming starts. This chapter describes the classes available that can be used to create and display the main window for both Qt and KDE applications. Chapter 3 expands on this by demonstrating methods for orga- nizing the contents of windows and dialog boxes. Chapters 4 and 5 both cover the subject of managing pop-up dialogs, both custom-built dialogs and the dialogs that are predefined as part of either Qt or KDE. Chapter 6 explores the construction and management of menus and toolbars. Chapter 7 describes the management of wid- gets that come in groups— such as collections of buttons that toggle on and off in relation to one another. Part II: Step by Step Part II can be studied from beginning to end, or you can skip around from one topic to another as necessary. Although you will find a few cross-references from one chapter to another, for the most part each chapter is independent of the others. Chapter 8 describes how your program can respond to the mouse and keyboard. Chapter 9 explains how you can manage and display pixel-level graphics — either loaded from a file or compiled right into the program. Chapter 10 explains fonts and the process for displaying strings of characters. Chapter 11 explores the options you have for creating and managing colors. Chapter 12 contains several examples of using the QPainter class to perform a wide range of detailed graphics rendering. Chapter 13 delves deeper into graphics by exploring the process of manipulating graphics to fit a specific size or for placement on a printed page. Chapter 13 also includes a special section on animation. Chapter 14 contains examples of dragging and dropping graphic and text objects. Chapter 15 explores the process of communi- cating data from one application to another. Chapter 16 rounds out the section’s presentation of classes with examples of some miscellaneous utilities. Chapter 17 is an exploration of KDE facilities for internationalization. Part III: Reference and Mechanics A widget is an object that contains a window of some kind and is capable of being displayed on the screen. Chapter 18 is an alphabetical list of the widgets of Qt, along with some examples of how to use them. Chapter 19 is a list, with examples, of all of the KDE widgets. Chapter 20 contains simple descriptive examples of the same program written in Win32, KDE, and GNOME. 4682-1 fm.f.qc 11/20/00 15:45 Page xi xii Preface The Cross-Reference Appendixes There is a lot of software here, and we all need some way to get a handle on it. The appendixes contain reference information that can be very helpful in finding things. Appendix Lists Contains C Methods Each method name is listed, along with the classes in which it can be found. D Returned By The Qt and KDE classes have constructors, but you can also acquire some of them from other classes by calling methods that produce them. The methods are listed here. E Enumerated Types Enumerated types are listed alphabetically, showing the classes in which they are defined and the names of their values. F Signals Signals are listed alphabetically with their argument types and the classes from which they are emitted. G Slots Slots are listed alphabetically with their argument types and the classes that contain them. Example Code Most things described in this book are described by actual code samples. As much as possible, these examples are complete running programs. I find that a simple example — an example that demonstrates just one thing — is most useful to me when I need to figure out (or be reminded) how to do something. Each example is intended to demonstrate one, or possibly two, specific things. The examples are not meant to demonstrate some kind of “correct” coding prac- tice, or even the “correct” way to do a particular task. There is no correct way because, in KDE as in all other software systems, there is usually more than one way to get any particular job done. And the overall style and design of a program are up to the programmer. All of the example code, along with the makefiles for each, can be found here: http://www.belugalake.com/book/kdebible 4682-1 fm.f.qc 11/20/00 15:45 Page xii [...]... requirements of a Qt program The window is shown in Figure 2 -1 1 2 3 4 5 6 7 /* helloworld.cpp */ #include #include #include int main(int argc,char **argv) { Responding to input by specifying slots to receive signals ✦ ✦ ✦ ✦ 4682 -1 ch02.f.qc 12 11 /13 /00 14 :09 Page 12 Part I ✦ Getting Started 8 9 10 11 12 13 14 15 16 17 18 } QApplication app(argc,argv); QLabel *label = new... 14 7 15 0 15 3 15 6 16 0 16 3 16 3 16 5 16 6 16 6 16 7 4682 -1 fm.f.qc 11 /20/00 15 :45 Page xix Contents Part II: Step by Step 17 3 Chapter 8: The Mouse and the Keyboard 17 5 From a Port to a Slot The Mouse Events Mouse Grabbing and Releasing Changing the Cursor’s Appearance... 503 504 505 506 508 508 509 511 512 513 514 515 518 518 519 520 523 524 525 526 527 528 529 532 532 533 534 535 536 537 539 540 5 41 542 543 544 545 545 547 548 549 550 5 51 552 552 553 xxiii 4682 -1 fm.f.qc xxiv 11 /20/00 15 :45 Page xxiv Contents KPasswordDialog KPasswordEdit KPopupMenu KProgress KRestrictedLine KRootPermsIcon... compiles it is quite simple: INCL= -I$(QTDIR)/include -I$(KDEDIR)/include CFLAGS= -pipe -O2 -fno-strength-reduce LFLAGS= -L$(QTDIR)/lib -L$(KDEDIR)/lib -L/usr/X11R6/lib LIBS= -lqt -lX 11 -lXext CC=g++ helloworld: helloworld.o $(CC) $(LFLAGS) -o helloworld helloworld.o $(LIBS) helloworld.o: helloworld.cpp 13 4682 -1 ch02.f.qc 14 11 /13 /00 14 :09 Page 14 Part I ✦ Getting Started clean: rm -f helloworld rm -f... 717 Index 723 End-User License Agreement 756 GNU General Public License 759 CD-ROM Installation Instructions 766 xxv 4682 -1 fm.f.qc 11 /20/00 15 :45 Page xxvi 4682 -1 ch 01. f.qc 11 /13 /00 14 :09 Page 3 1 C H A P T E R What Is This Thing Called KDE? T he name of the software... descriptive information for a class About KDE KDE is an open source development project of a graphical desktop environment Other than being the first letter of the acronym, the K doesn’t stand for anything It is just a name 4682 -1 ch 01. f.qc 11 /13 /00 14 :09 Page 9 Chapter 1 ✦ What Is This Thing Called KDE? The KDE software is constructed using Qt The project began in 19 96, the year after the first version... hash tables, trees, quarks, and caches One of the crucial functions handled by glib is the main loop, which 4682 -1 ch 01. f.qc 11 /13 /00 14 :09 Page 5 Chapter 1 ✦ What Is This Thing Called KDE? enables KDE to handle multiple resources while it simultaneously executes the code of an application X 11 This is the graphics layer that handles the low-level functions used to control the display All the fundamental... diagram in Figure 1- 1 should give you some idea of the levels of software that make up a KDE application ✦ ✦ ✦ ✦ In This Chapter Understanding the different parts and the overall structure of KDE Learning the part played by Qt in application development Learning the part played by KDE in application development Learning about widgets and the event model ✦ ✦ ✦ ✦ 4682 -1 ch 01. f.qc 4 11 /13 /00 14 :09 Page 4 Part... 295 298 3 01 306 307 309 311 313 315 316 318 320 326 3 31 Chapter 14 : Drag and Drop 339 A Simple Text Drag and Drop 339 Drag and Drop of Both Text and Image Data 344 Cut and Paste 349 Chapter 15 : Interprocess Communications and Applets 355 The DCOP... foreground color, its position on the display, and so on You can use the widgets defined in either Qt or KDE, or you can create your own by using QWidget as a base class 9 4682 -1 ch 01. f.qc 10 11 /13 /00 14 :09 Page 10 Part I ✦ Getting Started The Names of Things The Qt class names begin with the letter Q and the KDE class names begin with the letter K That way, when you read the source code of a program, you . arthur@belugalake.com. 4682 -1 fm.f.qc 11 /20/00 15 :45 Page vi For Mary 4682 -1 fm.f.qc 11 /20/00 15 :45 Page vii 4682 -1 fm.f.qc 11 /20/00 15 :45 Page viii Preface I f you want to write a KDE application, you’ve. 415 Chapter 19 : The Widgets of KDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 91 Chapter 20: Comparative Anatomy of Windowing Programs . . . . . . . . . . . 5 81 4682 -1 fm.f.qc 11 /20/00. Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . 766 4682 -1 fm.f.qc 11 /20/00 15 :45 Page xv 4682 -1 fm.f.qc 11 /20/00 15 :45 Page xvi Contents Preface. . . . . . . . . . . . . . . . . .

Ngày đăng: 13/08/2014, 22:21

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan