Book Image

Tkinter GUI Application Development Blueprints

By : Bhaskar Chaudhary
Book Image

Tkinter GUI Application Development Blueprints

By: Bhaskar Chaudhary

Overview of this book

Tkinter is the built-in GUI package that comes with standard Python distributions. It is a cross-platform package, which means you build once and deploy everywhere. It is simple to use and intuitive in nature, making it suitable for programmers and non-programmers alike. This book will help you master the art of GUI programming. It delivers the bigger picture of GUI programming by building real-world, productive, and fun applications such as a text editor, drum machine, game of chess, media player, drawing application, chat application, screen saver, port scanner, and many more. In every project, you will build on the skills acquired in the previous project and gain more expertise. You will learn to write multithreaded programs, network programs, database driven programs and more. You will also get to know the modern best practices involved in writing GUI apps. With its rich source of sample code, you can build upon the knowledge gained with this book and use it in your own projects in the discipline of your choice.
Table of Contents (15 chapters)
Tkinter GUI Application Development Blueprints
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
Index

Index

A

  • API, Weather Reporter application
    • URL / Creating a Weather Reporter
  • APIs
    • defining, in socket module / A simple socket demo
  • asterisk
    • usage, URL / Specifying styles
  • audio
    • controls, adding / Playing audio and adding audio controls
    • playing / Playing audio and adding audio controls
  • audio controls
    • stop function, adding / Adding the play/stop function
    • play function, adding / Adding the play/stop function
    • pause function, adding / Adding the pause/unpause function
    • unpause function, adding / Adding the pause/unpause function
    • unmute function, adding / Adding the mute/unmute function
    • mute function, adding / Adding the mute/unmute function
    • fast forward function, adding / Fast forward/rewind function
    • rewind function, adding / Fast forward/rewind function
    • next track function, adding / Adding the next track/previous track function
    • previous track function, adding / Adding the next track/previous track function
    • Volume Change function, adding / Adding the volume change function
  • audio player
    • building / An overview of the chapter
    • recording capability formats / An overview of the chapter
    • about / An overview of the chapter
    • external library requisites / External library requirements
    • program structure, building / Program structure and broadview skeleton
    • broadview skeleton / Program structure and broadview skeleton
    • program structure / Program structure and broadview skeleton
    • data structure, deciding / Deciding the data structure
    • Player class, creating / Creating the Player class
    • items, removing / Adding and removing items from a playlist
    • items, adding / Adding and removing items from a playlist
    • seek bar, creating / Creating a seek bar
    • one-time updates, providing / One-time updates during audio playback
    • continuous updates, managing / Managing continuous updates
    • looping over tracks feature, adding / Looping over tracks
    • tooltip, adding / Adding a tooltip
  • AVbin
    • URL / The pyglet module
    • about / The pyglet module

B

  • beat patterns
    • saving / Saving beat patterns
  • beats per unit (BPUs)
    • about / An overview of the chapter
  • Beautiful Soup
    • URL / Creating a Weather Reporter
  • boilerplate
    • about / Structuring our program
  • broader visual elements
    • creating / Creating broader visual elements
    • getter and setter methods, defining / Defining getter and setter methods
    • number of units and beats per unit feature / The number of units and beats per unit features
  • broad GUI structure
    • setting up / Setting up a broad GUI structure
  • broadview skeleton
    • building / Program structure and broadview skeleton
  • built-in functionality
    • adding / Adding a built-in functionality
  • buttons
    • functionality, adding to / Adding functionality to the remaining buttons

C

  • callback functions / GUI programming – the big picture
  • callbacks
    • about / Events and callbacks – adding life to programs, Command binding
    • arguments, passing to / Passing arguments to callbacks
  • canvas
    • items, drawing on / Drawing items on the canvas
  • canvas' methods
    • URL / Adding functionality to menu items
  • Canvas widget
    • window coordinate system / Dealing with mouse events
    • canvas coordinate system / Dealing with mouse events
  • CapWords / Setting up the editor skeleton
  • chat clients
    • about / Building a chat application
  • chat server
    • about / Building a chat application
  • chess program
    • source and destination position, obtaining / Getting the source and destination position
    • list of the moves, collecting / Collecting a list of the moves that need to be highlighted
    • allowed moves, highlighting / Highlighting allowed moves
    • pre move validation / Pre move validation
    • move, recording in data structure / Recording a move in the data structure
    • game statistics, maintaining / Keep game statistics
  • code styling / Setting up the editor skeleton
  • color palette
    • adding / Adding a color palette
  • command-line output
    • redirecting, to Tkinter / Redirecting the command-line output to Tkinter
  • command binding / Command binding
  • command option
    • limitations / Limitations of the command option
  • context/pop-up menu
    • creating / Creating the context/pop-up menu
  • continuous updates
    • monitoring, during audio playback / One-time updates during audio playback, Managing continuous updates
  • CRUD (Create, Read, Update, and Delete)
    • about / Creating a phone book application
  • cursor information bar
    • adding / Adding the cursor information bar
  • cursors
    • URL / Specifying styles
  • cx_Freeze tool
    • about / Other freezing tools
    • URL / Other freezing tools

D

  • 3D framework, for Tkinter
    • URL / 3D graphics with Tkinter
  • 3D graphics
    • defining, with Tkinter / 3D graphics with Tkinter
  • 3D programming, with Tkinter
    • URL / 3D graphics with Tkinter
  • data structure
    • finalizing / Finalizing the data structure
    • deciding / Deciding the data structure
  • data structures
    • modeling / Modeling the data structures
    • convention, on naming chess pieces / Convention on naming chess pieces
    • convention, for naming location on chessboard / Convention for naming locations on the chessboard
  • denial of service (DOS)
    • about / Creating a Weather Reporter
  • deserialization
    • about / Saving beat patterns
  • dialogs
    • working with / Working with forms and dialogs
  • don’t repeat yourself (DRY) / Specifying styles
  • draw methods
    • top bar options, adding for / Adding top bar options for draw methods
  • drum machine
    • playing / Playing the drum machine
    • pygame, initializing / Initializing pygame
    • complete patterns, playing / Playing complete patterns
    • rhythm tempo, determining / Determining the tempo of a rhythm
  • drum samples
    • loading / Loading drum samples

E

  • easier to ask for forgiveness than permission (EAFP) / Handling errors and exceptions
  • event binding, options
    • application-level binding / The levels of binding
    • class-level binding / The levels of binding
  • events
    • about / Events and callbacks – adding life to programs
    • binding / Event binding
    • patterns / Event patterns
    • binding, level / The levels of binding
    • propagation / The levels of binding
    • unbinding / Event unbinding and virtual events
    • virtual events / Event unbinding and virtual events
    • unbind option / Event unbinding and virtual events
  • events patterns
    • about / Event patterns
    • event type / Event patterns
    • event modifier / Event patterns
    • event detail / Event patterns

F

  • fast forward
    • adding / Fast forward/rewind function
  • filedialog
    • additional options / Working with forms and dialogs
  • filter functions / Using filter and map
  • Find Text feature
    • implementing / Implementing the Find Text feature
  • fonts
    • about / More on fonts
    • names / More on fonts
    • finer control / Finer control over font
    • font selector, building / Building a font selector
  • Footprint Editor / An overview of the chapter
  • forms
    • working with / Working with forms and dialogs
  • framework
    • creating / Creating a tiny framework
  • Freeze tools
    • about / Distributing a Tkinter application, Other freezing tools
    • URL / Other freezing tools
  • freezing tools
    • Freeze / Other freezing tools
    • cx_Freeze / Other freezing tools
  • function closures
    • about / Creating broader visual elements
    • URL / Creating broader visual elements
  • functions
    • about / Creating broader visual elements

G

  • game of chess
    • defining / An overview of the chapter
    • module requirements / Module requirements for this chapter
    • program, structuring / Structuring our program
  • General Public License (GPL) / PyQt
  • geometry management / GUI programming – the big picture
  • geometry manager
    • about / Adding widgets to a parent window
    • pack / The Tkinter geometry manager
    • grid / The Tkinter geometry manager
    • place / The Tkinter geometry manager
  • global variables / Working with forms and dialogs
  • grid geometry manager
    • about / The Tkinter geometry manager, The grid geometry manager
    • cell / The grid geometry manager
    • using / The grid geometry manager
    • minsize option / The grid geometry manager
    • pad option / The grid geometry manager
    • weight option / The grid geometry manager
  • GUI
    • setting up, in OOP / Setting up the GUI in OOP
  • GUI programming
    • about / GUI programming – the big picture
    • aspects / GUI programming – the big picture
    • widgets / GUI programming – the big picture
    • geometry management / GUI programming – the big picture
    • callback functions / GUI programming – the big picture
  • GUI programs
    • building blocks, widgets / Widgets – the building blocks of GUI programs

H

  • HtmlWindow widget / A limited number of core widgets

I

  • icons toolbar / The icons toolbar and View menu functions
  • IDLE / Installing Python and Tkinter
  • index format
    • x.y / Index
    • @x,y / Index
    • end / Index
    • mark / Index
    • tag.first / Index
    • tag.last / Index
    • selection (SEL_FIRST, SEL_LAST) / Index
    • window_name / Index
    • image_name / Index
    • INSERT / Index
    • CURRENT / Index
  • indexing
    • about / Indexing and tagging
  • installation
    • Tkinter / Installing Python and Tkinter
    • Python / Installing Python and Tkinter
  • instance-level binding
    • about / The levels of binding
  • IronPython / Other options
  • irregular line and shapes feature
    • drawing / Drawing irregular lines and super shapes
  • irregular lines
    • drawing / Drawing irregular lines
  • items
    • drawing, on canvas / Drawing items on the canvas
    • about / Drawing items on the canvas
  • items, playlist
    • adding / Adding and removing items from a playlist
    • removing / Adding and removing items from a playlist
    • single audio file, adding / Adding a single audio file
    • selected files, removing / Removing the selected files from a playlist
    • files, adding from directory / Adding all files from a directory

J

  • JSON (JavaScript Object Notation)
    • about / Creating a Weather Reporter
  • Jython / Other options

K

  • keysym mapping
    • about / Event patterns
    • URL / Event patterns

L

  • limitations, Tkinter
    • about / The limitations of Tkinter
    • limited number of core widgets / A limited number of core widgets
    • non-Python objects / Non-Python objects
    • no support for printing / No support for printing
    • no support for newer image formats / No support for newer image formats
    • inactive development community / Inactive development community
    • alternatives / Alternatives to Tkinter
    • wxPython / wxPython
    • pyQt / PyQt
    • PySide / PySide
    • pyGTK / PyGTK
    • other options / Other options
  • line number
    • displaying / Displaying the line number
  • look before you leap (LBYL) / Handling errors and exceptions
  • looping over tracks feature
    • adding / Looping over tracks

M

  • mainloop method / The root window – your drawing board
  • map functions / Using filter and map
  • matplotlib
    • URL / Graphing with Tkinter
  • menu
    • adding / Adding a menu and menu items
  • menu implementation
    • URL / Creating a tiny framework
  • menu items
    • adding / Adding a menu and menu items, Adding menu items
    • options / Adding menu items
    • functionality, adding to / Adding functionality to menu items
  • menu separators / Adding menu items
  • message boxes
    • working with / Working with message boxes
  • Method Resolution Order (MRO) / The class hierarchy of Tkinter
  • mixer module
    • URL / Initializing pygame
  • mixin
    • about / The class hierarchy of Tkinter
    • geometry mixins / The class hierarchy of Tkinter
    • implementation mixins / The class hierarchy of Tkinter
  • mod / Index
  • modal window / Types of Toplevel windows
  • Model-View-Controller (MVC)
    • about / Structuring our program
  • model first philosophy / Deciding the data structure
  • modifiers / Index
  • module requirements
    • defining / Module requirements for the chapter
  • mouse events
    • defining / Dealing with mouse events
  • multiple beat patterns
    • support / Support for multiple beat patterns
  • mute function
    • adding / Adding the mute/unmute function

N

  • next track function
    • adding / Adding the next track/previous track function
  • NumPy
    • about / Graphing with Tkinter

O

  • object-oriented programming / Working with forms and dialogs
  • one-time updates
    • monitoring, during audio playback / One-time updates during audio playback
  • OOP
    • GUI, setting up / Setting up the GUI in OOP
    • data abstraction / Setting up the GUI in OOP
    • encapsulation / Setting up the GUI in OOP
    • inheritance / Setting up the GUI in OOP
    • polymorphism / Setting up the GUI in OOP
  • option database / Specifying styles

P

  • pack() method / Widgets – the building blocks of GUI programs, The Tkinter geometry manager
  • pack geometry manager
    • about / The Tkinter geometry manager, The pack geometry manager
    • spaces, distinguishing / The pack geometry manager
    • side option / The pack geometry manager
    • fill option / The pack geometry manager
    • expand option / The pack geometry manager
    • anchor option / The pack geometry manager
    • internal padding option / The pack geometry manager
    • using / The pack geometry manager
  • packing box / The pack geometry manager
  • Pattern Number Spinbox widget
    • about / An overview of the chapter
  • pause function
    • adding / Adding the pause/unpause function
  • PEP8
    • documentation, URL / Setting up the editor skeleton
  • percent substitution / Validating user input
  • phone book application
    • creating / Creating a phone book application
    • new record, creating / Creating a new record
    • reading, from database / Reading from the database
    • records, updating / Updating records
    • records, deleting / Deleting records
  • pickle
    • about / Saving beat patterns
  • pickle module
    • about / Saving beat patterns
    • URL / Saving beat patterns
  • pickling
    • about / Saving beat patterns
  • Piece class
    • creating / Creating a Piece class
    • chess pieces, displaying on chessboard / Displaying chess pieces on the chessboard
    • rules, defining for chess pieces / Defining rules for the chess pieces
    • rules, for King / Rules for the King, Queen, Rook, and Bishop
    • rules, for Queen / Rules for the King, Queen, Rook, and Bishop
    • rules, for Rook / Rules for the King, Queen, Rook, and Bishop
    • rules, for Bishop / Rules for the King, Queen, Rook, and Bishop
    • rules, for Knight / Rules for a Knight
    • rules, for Pawn / Rules for a Pawn
    • movement validation, of chess pieces / The movement validation of chess pieces
    • available moves, tracking / Tracking all the available moves
    • current position of King, finding / Finding out the current position of the King
    • King in check, checking / Checking whether the King is in check
  • pixel unit (px) / Specifying styles
  • place geometry manager
    • about / The Tkinter geometry manager, The place geometry manager
    • using / The place geometry manager
  • Player class
    • creating / Creating the Player class
  • play function
    • adding / Adding the play/stop function
  • playlist
    • items, adding / Adding and removing items from a playlist
    • items, removing / Adding and removing items from a playlist
    • single audio file, adding / Adding a single audio file
    • selected files, removing / Removing the selected files from a playlist
    • files, adding from directory / Adding all files from a directory
    • emptying / Emptying the playlist
  • play_media method / Creating the Player class
  • PMW list of extensions
    • about / PMW list of extensions
    • widgets / Widgets
    • dialogs / Dialogs
    • miscellaneous / Miscellaneous
  • point unit (pt) / Specifying styles
  • predefined named colors
    • URL / Specifying styles
  • previous track function
    • adding / Adding the next track/previous track function
  • print() function / Tkinter in Python 2.x
  • programmable drum machine
    • building / An overview of the chapter
  • program structure
    • building / Program structure and broadview skeleton
  • protocol / Implementing the Find Text feature
  • py2app
    • about / py2app
    • URL / py2app
  • py2exe
    • about / py2exe
    • URL / py2exe
  • pygame
    • references / Module requirements for the chapter
  • pygame.mixer
    • URL / Module requirements for the chapter
  • pyglet
    • URL, for download / The pyglet module
    • URL, for installation / The pyglet module
    • online documentation, URL / Creating the Player class
  • Pyglet player
    • URL / Creating the Player class
  • PyGTK
    • URL / PyGTK
    • about / PyGTK
  • pyInstaller
    • about / PyInstaller
    • URL / PyInstaller
  • PyQT
    • about / Working with ttk-themed widgets
  • pyQt
    • about / PyQt
  • PySide
    • about / Working with ttk-themed widgets, PySide
    • URL / PySide
  • Python
    • installing / Installing Python and Tkinter
    • URL, for download / Installing Python and Tkinter
    • package index, URL / Creating the Player class
  • Python 2.x
    • Tkinter / Tkinter in Python 2.x
  • Python Megawidget (PMW) / External library requirements
    • URL / PMW Tkinter extension
  • Python object
    • interactive help / Getting interactive help
  • Python Standard Library
    • URL / Creating the Player class

R

  • race condition
    • about / Building a Snake game
  • requisites, external library
    • about / External library requirements
    • pyglet library / External library requirements
    • Python Megawidget (PMW) / External library requirements
    • pyglet module / The pyglet module
    • PMW Tkinter extension / PMW Tkinter extension
  • reserved ports
    • URL / Building a chat application
  • rewind function
    • adding / Fast forward/rewind function
  • root window
    • about / The root window – your drawing board
    • options / Some common root window options
  • rotation matrix
    • URL / 3D graphics with Tkinter

S

  • Scrapy
    • URL / Creating a Weather Reporter
  • screen saver
    • building / Building a screen saver
  • seek bar
    • creating / Creating a seek bar
  • SEL / Tags
  • Select All feature
    • implementing / Implementing the Select All feature
  • selection modes, Listbox widget
    • SINGLE / Program structure and broadview skeleton
    • BROWSE / Program structure and broadview skeleton
    • MULTIPLE / Program structure and broadview skeleton
    • EXTENDED / Program structure and broadview skeleton
  • Single Responsibility Principle / The Single Responsibility Principle
  • skeleton, text editor
    • setting up / Setting up the editor skeleton
  • Snake game
    • building / Building a Snake game
  • Software Requirement Specifications (SRS)
    • about / Structuring our program
  • source code, functions
    • askopenfile / Working with forms and dialogs
    • askopenfilename / Working with forms and dialogs
    • askopenfilenames / Working with forms and dialogs
    • askopenfiles / Working with forms and dialogs
    • asksaveasfile / Working with forms and dialogs
    • asksaveasfilename / Working with forms and dialogs
    • askdirectory / Working with forms and dialogs
  • spoke ration
    • about / Drawing items on the canvas
  • sqlite3
    • URL / Creating a phone book application
  • stop function
    • adding / Adding the play/stop function
  • submodifiers / Index
  • subprocess Python module
    • about / Redirecting the command-line output to Tkinter
    • URL / Redirecting the command-line output to Tkinter
  • Super Formula
    • about / Drawing super shapes
    • URL / Drawing super shapes
  • super shapes
    • drawing / Drawing super shapes
    • about / Drawing super shapes

T

  • tagging
    • about / Indexing and tagging
  • tags
    • about / Tags
  • Tck/Tk
    • documentation, URL / Setting up the editor skeleton
  • TCP connect scanner
    • about / Building a port scanner
  • TCP SYN scan
    • about / Building a port scanner
    • URL / Building a port scanner
  • tear-off menus / Adding a menu and menu items
  • text editor
    • creating / Objectives of the chapter
    • features, including / An overview of the chapter
    • skeleton, setting up / Setting up the editor skeleton
    • menu, adding / Adding a menu and menu items
    • menu items, adding / Adding a menu and menu items
    • View menu, implementing / Implementing the View menu
    • built-in functionality, adding / Adding a built-in functionality
    • indexing / Indexing and tagging
    • tagging / Indexing and tagging
    • Select All feature, implementing / Implementing the Select All feature
    • Find Text feature, implementing / Implementing the Find Text feature
    • Toplevel windows / Types of Toplevel windows
    • dialogs, working with / Working with forms and dialogs
    • forms, working with / Working with forms and dialogs
    • message boxes, working with / Working with message boxes
    • icons toolbar / The icons toolbar and View menu functions
    • View menu functions / The icons toolbar and View menu functions
    • line number, displaying / Displaying the line number
    • cursor information bar, adding / Adding the cursor information bar
    • themes, adding / Adding themes
    • context/pop-up menu, creating / Creating the context/pop-up menu
  • themes
    • adding / Adding themes
  • threading module
    • URL / Tkinter and thread safety
  • tips, program design
    • about / Tips for program design
    • model-first policy, versus code-first policy / The model-first policy versus the code-first policy
    • model, separating from view / Separating the model from the view
    • right data structure, selecting / Selecting the right data structure
    • variables and methods, naming / Naming variables and methods
    • Single Responsibility Principle / The Single Responsibility Principle
    • loose coupling / Loose coupling
    • errors and exceptions, handling / Handling errors and exceptions
  • tips, program optimization
    • about / Tips for program optimization, Other optimization tips
    • map, using / Using filter and map
    • filter, using / Using filter and map
    • variables, optimizing / Optimize variables
    • program, profiling / Profiling your program
    • URL / Other optimization tips
  • tk.some_method / Importing Tkinter
  • Tkinter
    • about / Objectives of this chapter
    • installing / Installing Python and Tkinter
    • importing / Importing Tkinter
    • geometry manager / The Tkinter geometry manager
    • interactive help / Getting interactive help
    • documentation, URL / Getting interactive help, Setting up the editor skeleton
    • Menu widget / Adding a menu and menu items
    • menu Items / Adding a menu and menu items
    • and threading / Tkinter and threading
    • and thread safety / Tkinter and thread safety
    • defining / Graphing with Tkinter
    • 3D graphics, defining with / 3D graphics with Tkinter
    • miscellaneous tips / Chapter objectives
    • command-line output, redirecting / Redirecting the command-line output to Tkinter
    • class hierarchy / The class hierarchy of Tkinter
    • limitations / The limitations of Tkinter
    • in Python 2.x / Tkinter in Python 2.x
  • Tkinter application
    • distributing / Distributing a Tkinter application
  • Tkinter application, distributing
    • py2exe / py2exe
    • py2app / py2app
    • pyInstaller / PyInstaller
    • freezing tools / Other freezing tools
  • Tkinter extensions
    • about / Adding a tooltip
    • Tix / Adding a tooltip
    • PMW / Adding a tooltip
    • TkZinc / Adding a tooltip
    • Widget Construction Kit(WCK) / Adding a tooltip
  • Tkinter RAD (tkRAD) framework
    • URL / Creating a tiny framework
  • Tkinter variables
    • tracking / Tracing Tkinter variables
  • Tkinter widgets
    • about / Getting to know the core Tkinter widgets
  • toolbar buttons
    • adding / Adding toolbar buttons
  • tooltip
    • adding / Adding a tooltip
    • PMW list of extensions / PMW list of extensions
  • top bar options
    • adding, for draw methods / Adding top bar options for draw methods
  • Toplevel window
    • adding / Setting up the editor skeleton
  • Toplevel windows
    • about / Types of Toplevel windows
    • types / Types of Toplevel windows
  • Toplevel windows, types
    • main / Types of Toplevel windows
    • child / Types of Toplevel windows
    • transient / Types of Toplevel windows
    • undecorated / Types of Toplevel windows
  • ttk-themed widgets
    • working with / Working with ttk-themed widgets
    • about / Working with ttk-themed widgets
    • URL / Working with ttk-themed widgets

U

  • unified modeling language (UML)
    • about / Structuring our program
  • unmute function
    • adding / Adding the mute/unmute function
  • unpause function
    • adding / Adding the pause/unpause function
  • unpickling
    • about / Saving beat patterns
  • user input
    • validating / Validating user input
  • user input validation
    • about / Validating user input
    • enabling / Validating user input
    • key validation mode demo / Key validation mode demo
    • focus out validation mode demo / Focus out validation mode demo
  • user preferences
    • managing / Managing user preferences

V

  • validation modes
    • none / Validating user input
    • focus / Validating user input
    • focusin / Validating user input
    • focusout / Validating user input
    • key / Validating user input
    • all / Validating user input
  • View menu
    • Checkbutton menu items / Implementing the View menu
    • Radiobutton menu items / Implementing the View menu
    • Cascade menu items / Implementing the View menu
    • functions / The icons toolbar and View menu functions
  • virtual events / Creating a seek bar
  • Volume Change function
    • adding / Adding the volume change function

W

  • Weather Reporter application
    • creating / Creating a Weather Reporter
    • URL / Creating a Weather Reporter
    • socket demo / A simple socket demo
    • port scanner, building / Building a port scanner
    • chat application, building / Building a chat application
  • What You See Is What You Get (WYSIWYG ) / PyQt
  • widget
    • traversing / Widget traversal
    • data, formatting / Formatting widget data
  • widget-specific variables
    • handling / Handling widget-specific variables
  • widget.grid_remove() method / The grid geometry manager
  • widget methods
    • about / Adding toolbar buttons
    • reference / Adding toolbar buttons
  • widgets
    • about / GUI programming – the big picture, Widgets – the building blocks of GUI programs
    • Label widget / Widgets – the building blocks of GUI programs
    • Button widget / Widgets – the building blocks of GUI programs
    • features / Some important widget features
    • widget class / Some important widget features
    • creating, ways / Ways to create widgets
    • Tkinter widgets / Getting to know the core Tkinter widgets
    • adding, to parent window / Adding widgets to a parent window
    • functioning / Events and callbacks – adding life to programs
    • platform-based styling / Doing it in style, Specifying styles
    • color options, specifying / Specifying styles
  • window manager (Wm) / The class hierarchy of Tkinter
  • wxPython
    • about / Working with ttk-themed widgets, wxPython
    • URL / wxPython
  • wxPython widget / A limited number of core widgets