Tcl and the Tk toolkit

著者
書誌事項

Tcl and the Tk toolkit

John K. Osterhout, Ken Jones ; with contributions by Eric Foster-Johnson ... [et al.]

(Addison-Wesley professional computing series)

Addison Wesley, c2010

2nd ed

  • : pbk

この図書・雑誌をさがす
注記

Includes bibliographical references and index

内容説明・目次

内容説明

John K. Ousterhout's Definitive Introduction to Tcl/Tk-Now Fully Updated for Tcl/Tk 8.5 Tcl and the Tk Toolkit, Second Edition, is the fastest way for newcomers to master Tcl/Tk and is the most authoritative resource for experienced programmers seeking to gain from Tcl/Tk 8.5's powerful enhancements. Written by Tcl/Tk creator John K. Ousterhout and top Tcl/Tk trainer Ken Jones, this updated volume provides the same extraordinary clarity and careful organization that made the first edition the world's number one Tcl/Tk tutorial. Part I introduces Tcl/Tk through simple scripts that demonstrate its value and offer a flavor of the Tcl/Tk scripting experience. The authors then present detailed, practical guidance on every feature necessary to build effective, efficient production applications-including variables, expressions, strings, lists, dictionaries, control flow, procedures, namespaces, file and directory management, interprocess communication, error and exception handling, creating and using libraries, and more. Part II turns to the Tk extension and Tk 8.5's new themed widgets, showing how to organize sophisticated user interface elements into modern GUI applications for Tcl. Part III presents incomparable coverage of Tcl's C functions, which are used to create new commands and packages and to integrate Tcl with existing C software-thereby leveraging Tcl's simplicity while accessing C libraries or executing performance-intensive tasks. Throughout, the authors illuminate all of Tcl/Tk 8.5's newest, most powerful improvements. You'll learn how to use new Starkits and Starpacks to distribute run-time environments and applications through a single file; how to take full advantage of the new virtual file system support to treat entities such as zip archives and HTTP sites as mountable file systems; and more. From basic syntax to simple Tcl commands, user interface development to C integration, this fully updated classic covers it all. Whether you're using Tcl/Tk to automate system/network administration, streamline testing, control hardware, or even build desktop or Web applications, this is the one Tcl/Tk book you'll always turn to for answers.

目次

Preface xxv Preface to the First Edition xxvii Introduction xxxi PART I: The Tcl Language 1 Chapter 1: An Overview of Tcl and Tk 3 1.1: Getting Started 3 1.2: "Hello, World!" with Tk 6 1.3: Script Files 8 1.4: Variables and Substitutions 11 1.5: Control Structures 12 1.6: On the Tcl Language 14 1.7: Event Bindings 15 1.8: Additional Features of Tcl and Tk 19 Chapter 2: Tcl Language Syntax 21 2.1: Scripts, Commands, and Words 21 2.2: Evaluating a Command 22 2.3: Variable Substitution 24 2.4: Command Substitution 26 2.5: Backslash Substitution 26 2.6: Quoting with Double Quotes 28 2.7: Quoting with Braces 29 2.8: Argument Expansion 30 2.9: Comments 32 2.10: Normal and Exceptional Returns 35 2.11: More on Substitutions 36 Chapter 3: Variables 39 3.1: Commands Presented in This Chapter 39 3.2: Simple Variables and the set Command 41 3.3: Tcl's Internal Storage of Data 41 3.4: Arrays 42 3.5: Variable Substitution 43 3.6: Multidimensional Arrays 45 3.7: Querying the Elements of an Array 46 3.8: The incr and append Commands 47 3.9: Removing Variables: unset and array unset 49 3.10: Predefined Variables 49 3.11: Preview of Other Variable Facilities 50 Chapter 4: Expressions 53 4.1: Commands Presented in This Chapter 53 4.2: Numeric Operands 54 4.3: Operators and Precedence 55 4.4: Math Functions 58 4.5: Substitutions 60 4.6: String Manipulation 62 4.7: List Manipulation 63 4.8: Types and Conversions 63 4.9: Precision 64 Chapter 5: String Manipulation 65 5.1: Commands Presented in This Chapter 65 5.2: Extracting Characters: string index and string range 69 5.3: Length, Case Conversion, Trimming, and Repeating 70 5.4: Simple Searching 70 5.5: String Comparisons 71 5.6: String Replacements 72 5.7: Determining String Types 73 5.8: Generating Strings with format 74 5.9: Parsing Strings with scan 76 5.10: Glob-Style Pattern Matching 78 5.11: Pattern Matching with Regular Expressions 79 5.12: Using Regular Expressions for Substitutions 87 5.13: Character Set Issues 89 5.14: Message Catalogs 91 5.15: Binary Strings 95 Chapter 6: Lists 101 6.1: Commands Presented in This Chapter 101 6.2: Basic List Structure and the lindex and llength Commands 103 6.3: Creating Lists: list, concat, and lrepeat 105 6.4: Modifying Lists: lrange, linsert, lreplace, lset, and lappend 106 6.5: Extracting List Elements: lassign 109 6.6: Searching Lists: lsearch 110 6.7: Sorting Lists: lsort 111 6.8: Converting between Strings and Lists: split and join 111 6.9: Creating Commands as Lists 113 Chapter 7: Dictionaries 115 7.1: Commands Presented in This Chapter 116 7.2: Basic Dictionary Structure and the dict get Command 118 7.3: Creating and Updating Dictionaries 120 7.4: Examining Dictionaries: The size, exists, keys, and for Subcommands 122 7.5: Updating Dictionary Values 123 7.6: Working with Nested Dictionaries 126 Chapter 8: Control Flow 131 8.1: Commands Presented in This Chapter 131 8.2: The if Command 132 8.3: The switch Command 133 8.4: Looping Commands: while, for, and foreach 136 8.5: Loop Control: break and continue 138 8.6: The eval Command 139 8.7: Executing from Files: source 140 Chapter 9: Procedures 143 9.1: Commands Presented in This Chapter 143 9.2: Procedure Basics: proc and return 144 9.3: Local and Global Variables 146 9.4: Defaults and Variable Numbers of Arguments 146 9.5: Call by Reference: upvar 148 9.6: Creating New Control Structures: uplevel 150 9.7: Applying Anonymous Procedures 151 Chapter 10: Namespaces 155 10.1: Commands Presented in This Chapter 155 10.2: Evaluating Tcl Code in a Namespace 158 10.3: Manipulating Qualified Names 161 10.4: Exporting and Importing Namespace Commands 162 10.5: Inspecting Namespaces 163 10.6: Working with Ensemble Commands 164 10.7: Accessing Variables from Other Namespaces 169 10.8: Controlling the Name Resolution Path 170 Chapter 11: Accessing Files 173 11.1: Commands Presented in This Chapter 173 11.2: Manipulating File and Directory Names 176 11.3: The Current Working Directory 179 11.4: Listing Directory Contents 179 11.5: Working with Files on Disk 181 11.6: Reading and Writing Files 185 11.7: Virtual File Systems 194 11.8: Errors in System Calls 196 Chapter 12: Processes and Interprocess Communication 197 12.1: Commands Presented in This Chapter 197 12.2: Terminating the Tcl Process with exit 199 12.3: Invoking Subprocesses with exec 199 12.4: I/O to and from a Command Pipeline 203 12.5: Configuring Channel Options 204 12.6: Event-Driven Channel Interaction 206 12.7: Process IDs 209 12.8: Environment Variables 210 12.9: TCP/IP Socket Communication 210 12.10: Sending Commands to Tcl Programs 214 Chapter 13: Errors and Exceptions 219 13.1: Commands Presented in This Chapter 219 13.2: What Happens after an Error? 220 13.3: Generating Errors from Tcl Scripts 222 13.4: Trapping Errors with catch 222 13.5: Exceptions in General 223 13.6: Background Errors and bgerror 227 Chapter 14: Creating and Using Tcl Script Libraries 229 14.1: Commands Presented in This Chapter 230 14.2: The load Command 232 14.3: Using Libraries 232 14.4: Autoloading 233 14.5: Packages 234 14.6: Tcl Modules 239 14.7: Packaging Your Scripts as Starkits 242 Chapter 15: Managing Tcl Internals 247 15.1: Commands Presented in This Chapter 247 15.2: Time Delays 253 15.3: Time and Date Manipulation 254 15.4: Timing Command Execution 259 15.5: The info Command 259 15.6: Tracing Operations on Simple Variables 264 15.7: Tracing Array Variables 268 15.8: Renaming and Deleting Commands 269 15.9: Tracing Commands 270 15.10: Unknown Commands 272 15.11: Slave Interpreters 274 Chapter 16: History 283 16.1: Commands Presented in This Chapter 283 16.2: The History List 284 16.3: Specifying Events 285 16.4: Re-executing Commands from the History List 285 16.5: Shortcuts Implemented by unknown 286 16.6: Current Event Number: history nextid 287 PART II: Writing Scripts for Tk 289 Chapter 17: An Introduction to Tk 291 17.1: A Brief Introduction to Windowing Systems 292 17.2: Widgets 294 17.3: Applications, Toplevel Widgets, and Screens 296 17.4: Scripts and Events 297 17.5: Creating and Destroying Widgets 297 17.6: Geometry Managers 298 17.7: Widget Commands 299 17.8: Commands for Interconnection 300 Chapter 18: A Tour of the Tk Widgets 303 18.1: Widget Basics 304 18.2: Frames 306 18.3: Color Options 307 18.4: Toplevels 308 18.5: Labels 309 18.6: Labelframes 312 18.7: Buttons 312 18.8: Listboxes 317 18.9: Scrollbars 318 18.10: Scales 321 18.11: Entries 323 18.12: Menus 327 18.13: Panedwindow 334 18.14: Standard Dialogs 337 18.15: Other Common Options 339 Chapter 19: Themed Widgets 343 19.1: Comparing Classic and Themed Widgets 343 19.2: Combobox 345 19.3: Notebook 346 19.4: Progressbar 349 19.5: Separator 350 19.6: Sizegrip 350 19.7: Treeview 350 19.8: Themed Widget States 358 19.9: Themed Widget Styles 360 19.10: Other Standard Themed Widget Options 364 Chapter 20: Fonts, Bitmaps, and Images 367 20.1: Commands Presented in This Chapter 367 20.2: The font Command 369 20.3: The image Command 375 Chapter 21: Geometry Managers 385 21.1: Commands Presented in This Chapter 386 21.2: An Overview of Geometry Management 387 21.3: The Gridder 389 21.4: The Packer 396 21.5: Padding 404 21.6: The Placer 405 21.7: Hierarchical Geometry Management 405 21.8: Widget Stacking Order 407 21.9: Other Geometry Manager Options 408 21.10: Other Geometry Managers in Tk 409 Chapter 22: Events and Bindings 413 22.1: Commands Presented in This Chapter 413 22.2: Events 414 22.3: An Overview of the bind Command 416 22.4: Event Patterns 417 22.5: Sequences of Events 419 22.6: Substitutions in Scripts 419 22.7: Conflict Resolution 421 22.8: Event-Binding Hierarchy 422 22.9: When Are Events Processed? 423 22.10: Named Virtual Events 425 22.11: Generating Events 427 22.12: Logical Actions 428 22.13: Other Uses of Bindings 431 Chapter 23: The Canvas Widget 433 23.1: Canvas Basics: Items and Types 433 23.2: Manipulating Items with Identifiers and Tags 436 23.3: Bindings 439 23.4: Canvas Scrolling 444 23.5: PostScript Generation 445 Chapter 24: The Text Widget 447 24.1: Text Widget Basics 447 24.2: Text Indices and Marks 450 24.3: Search and Replace 451 24.4: Text Tags 453 24.5: Virtual Events 458 24.6: Embedded Windows 459 24.7: Embedded Images 460 24.8: Undo 462 24.9: Peer Text Widgets 464 Chapter 25: Selection and the Clipboard 467 25.1: Commands Presented in This Chapter 468 25.2: Selections, Retrievals, and Types 469 25.3: Locating and Clearing the Selection 470 25.4: Supplying the Selection with Tcl Scripts 471 25.5: The clipboard Command 473 25.6: Drag and Drop 474 Chapter 26: Window Managers 477 26.1: Commands Presented in This Chapter 478 26.2: Window Sizes 481 26.3: Window Positions 482 26.4: Gridded Windows 483 26.5: Window States 484 26.6: Decorations 485 26.7: Special Handling: Transients, Groups, and Override-Redirect 486 26.8: System-Specific Window Attributes 487 26.9: Dockable Windows 488 26.10: Window Close 489 26.11: Session Management 490 Chapter 27: Focus, Modal Interaction, and Custom Dialogs 491 27.1: Commands Presented in This Chapter 491 27.2: Input Focus 493 27.3: Modal Interactions 495 27.4: Custom Dialogs 499 Chapter 28: More on Configuration Options 505 28.1: Commands Presented in This Chapter 505 28.2: The Option Database 506 28.3: Option Database Entries 507 28.4: The RESOURCE_MANAGER Property and .Xdefaults File 508 28.5: Priorities in the Option Database 509 28.6: The option Command 510 28.7: The configure Widget Command 511 28.8: The cget Widget Command 512 Chapter 29: Odds and Ends 513 29.1: Commands Presented in This Chapter 513 29.2: Destroying Widgets 514 29.3: The update Command 514 29.4: Information about Widgets 516 29.5: The tk Command 516 29.6: Variables Managed by Tk 517 29.7: Ringing the Bell 518 PART III: Writing Tcl Applications in C 519 Chapter 30: Tcl and C Integration Philosophy 521 30.1: Tcl versus C: Where to Draw the Line 523 30.2: Resource Names-Connecting C Constructs to Tcl 524 30.3: "Action-Oriented" versus "Object-Oriented" 525 30.4: Representing Information 526 Chapter 31: Interpreters 527 31.1: Functions Presented in This Chapter 527 31.2: Interpreters 529 31.3: A Simple Tcl Application 530 31.4: Deleting Interpreters 531 31.5: Multiple Interpreters 531 Chapter 32: Tcl Objects 533 32.1: Functions Presented in This Chapter 534 32.2: String Objects 537 32.3: Numerical Objects 537 32.4: Fetching C Values from Objects 538 32.5: The Dynamic Nature of a Tcl Object 539 32.6: Byte Arrays 540 32.7: Composite Objects 540 32.8: Reference Counting 540 32.9: Shared Objects 541 32.10: New Object Types 542 32.11: Parsing Strings 543 32.12: Memory Allocation 544 Chapter 33: Evaluating Tcl Code 545 33.1: Functions Presented in This Chapter 545 33.2: Evaluating Tcl Code 546 33.3: Dynamically Building Scripts 548 33.4: Tcl Expressions 549 Chapter 34: Accessing Tcl Variables 551 34.1: Functions Presented in This Chapter 551 34.2: Setting Variable Values 553 34.3: Reading Variables 555 34.4: Unsetting Variables 556 34.5: Linking Tcl and C Variables 556 34.6: Setting and Unsetting Variable Traces 558 34.7: Trace Callbacks 559 34.8: Whole-Array Traces 561 34.9: Multiple Traces 561 34.10: Unset Callbacks 562 Chapter 35: Creating New Tcl Commands 563 35.1: Functions Presented in This Chapter 563 35.2: Command Functions 566 35.3: Registering Commands 567 35.4: The Result Protocol 569 35.5: Tcl_AppendResult 569 35.6: Tcl_SetResult and interp->result 570 35.7: clientData and Deletion Callbacks 572 35.8: Deleting Commands 575 35.9: Fetching and Setting Command Parameters 576 35.10: How Tcl Procedures Work 578 35.11: Command Traces 579 Chapter 36: Extensions 581 36.1: Functions Presented in This Chapter 581 36.2: The Init Function 582 36.3: Packages 583 36.4: Namespaces 584 36.5: Tcl Stubs 584 36.6: The ifconfig Extension 585 Chapter 37: Embedding Tcl 593 37.1: Functions Presented in This Chapter 593 37.2: Adding Tcl to an Application 594 37.3: Initialize Tcl 595 37.4: Creating New Tcl Shells 596 Chapter 38: Exceptions 599 38.1: Functions Presented in This Chapter 599 38.2: Completion Codes 600 38.3: Setting errorCode 603 38.4: Managing the Return Options Dictionary 604 38.5: Adding to the Stack Trace in errorInfo 605 38.6: Tcl_Panic 608 Chapter 39: String Utilities 611 39.1: Functions Presented in This Chapter 611 39.2: Dynamic Strings 617 39.3: String Matching 621 39.4: Regular Expression Matching 622 39.5: Working with Character Encodings 624 39.6: Handling Unicode and UTF-8 Strings 625 39.7: Command Completeness 627 Chapter 40: Hash Tables 629 40.1: Functions Presented in This Chapter 630 40.2: Keys and Values 631 40.3: Creating and Deleting Hash Tables 632 40.4: Creating Entries 633 40.5: Finding Existing Entries 635 40.6: Searching 636 40.7: Deleting Entries 637 40.8: Statistics 638 Chapter 41: List and Dictionary Objects 639 41.1: Functions Presented in This Chapter 639 41.2: Lists 642 41.3: Dictionaries 644 Chapter 42: Channels 649 42.1: Functions Presented in This Chapter 649 42.2: Channel Operations 656 42.3: Registering Channels 658 42.4: Standard Channels 660 42.5: Creating a New Channel Type 661 Chapter 43: Handling Events 671 43.1: Functions Presented in This Chapter 671 43.2: Channel Events 672 43.3: Timer Events 676 43.4: Idle Callbacks 677 43.5: Invoking the Event Dispatcher 678 Chapter 44: File System Interaction 681 44.1: Tcl File System Functions 681 44.2: Virtual File Systems 683 Chapter 45: Operating System Utilities 685 45.1: Functions Presented in This Chapter 685 45.2: Processes 687 45.3: Reaping Child Processes 689 45.4: Asynchronous Events 690 45.5: Signal Names 693 45.6: Exiting and Cleanup 693 45.7: Miscellaneous 694 Chapter 46: Threads 695 46.1: Functions Presented in This Chapter 695 46.2: Thread Safety 697 46.3: Building Threaded Tcl 697 46.4: Creating Threads 697 46.5: Terminating Threads 698 46.6: Mutexes 698 46.7: Condition Variables 699 46.8: Miscellaneous 701 Chapter 47: Building Tcl and Extensions 703 47.1: Building Tcl and Tk 703 47.2: The Tcl Extension Architecture (TEA) 707 47.3: Building Embedded Tcl 714 Appendixes 715 Appendix A: Installing Tcl and Tk 717 A.1: Versions 717 A.2: Bundled Tcl Distributions 718 A.3: ActiveTcl 718 A.4: Tclkits 719 A.5: Compiling Tcl/Tk from Source Distributions 719 Appendix B: Extensions and Applications 721 B.1: Obtaining and Installing Extensions 721 B.2: TkCon Extended Console 724 B.3: The Standard Tcl Library, Tcllib 725 B.4: Additional Image Formats with Img 725 B.5: Sound Support with Snack 725 B.6: Object-Oriented Tcl 726 B.7: Multithreaded Tcl Scripting 727 B.8: XML Programming 727 B.9: Database Programming 728 B.10: Integrating Tcl and Java 728 B.11: SWIG 729 B.12: Expect 729 B.13: Extended Tcl 730 Appendix C: Tcl Resources 731 C.1: Online Resources 731 C.2: Books 732 Appendix D: Tcl Source Distribution License 735 Index 737

「Nielsen BookData」 より

関連文献: 1件中  1-1を表示
詳細情報
ページトップへ