Book Image

Tkinter GUI Application Development HOTSHOT

By : Bhaskar Chaudhary
Book Image

Tkinter GUI Application Development HOTSHOT

By: Bhaskar Chaudhary

Overview of this book

<p>Tkinter is the built-in GUI package that comes with standard python distributions. This means it is easy to get started right away, without any extra installation or configuration. Tkinter’s strength lies in its simplicity of use and its intuitive nature which makes it suited for programmers and non-programmers alike. Once you get started, you will be surprised to see how a few lines of code can produce powerful GUI applications.</p> <p>Tkinter GUI Application Development Hotshot helps you learn the art of GUI programming—building real-world, productive and fun applications like text editor, drum machine, game of chess, media player, drawing application and many more. Each subsequent project builds on the skills acquired in the previous project. Also, learn to write multi-threaded and multi layered applications using Tkinter. Get to know modern best practices involved in writing GUI programs. Tkinter GUI Application Development Hotshot comes with a rich source of sample codes that you can use in your own projects in any discipline of your choice.</p> <p>Starting with a high level overview of Tkinter that covers the most important concepts involved in writing a GUI application, the book then takes you through a series of real world projects of increasing complexity, developing one project per chapter. After you have developed five full projects, the book provides you with some bare-bone skeleton codes for a few functional but incomplete projects, challenging you to put your skills to test by completing them.</p> <p>Finally, you are provided with tips for writing reusable, scalable, and quality GUI code for larger projects. The appendices provide a quick reference sheet for Tkinter.</p>
Table of Contents (16 chapters)
Tkinter GUI Application Development HOTSHOT
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
Index

The basic widget methods


These methods are provided under class Widget in module Tkinter. You can view the documentation for these methods in your interactive shell using the following commands:

>>> import Tkinter
>>>help(Tkinter.Widget)

A list of available methods under Widgets class is as follows:

Method

Description

after(self, ms, func=None, *args)

Calls function once after given time. MS specifies the time in milliseconds. FUNC gives the function, which shall be called. Additional parameters are given as parameters to the function call. Return: identifier to cancel scheduling with after_cancel.

after_cancel(self, id)

Cancel scheduling of function identified with ID. Identifier returned by after or after_idle must be given as first parameter.

after_idle(self, func, *args)

Call FUNC once if the Tcl main loop has no event to process. Return an identifier to cancel the scheduling with after_cancel.

bbox = grid_bbox(self, column=None, row=None, col2=None, row2=None)

Return a tuple of integer coordinates for the bounding box of this widget controlled by the geometry manager grid. If COLUMN, ROW are given, the bounding box applies from the cell with row and column 0 to the specified cell. If COL2 and ROW2 are given, the bounding box starts at that cell. The returned integers specify the offset of the upper left corner in the master widget and the width and height.

bind(self, sequence=None, func=None, add=None)

Bind to this widget at event SEQUENCE a call to function FUNC. SEQUENCE is a string of concatenated event patterns. An event pattern is of the form <MODIFIER-MODIFIER-TYPE-DETAIL>. An event pattern can also be a virtual event of the form <<AString>> where AString can be arbitrary. This event can be generated by event_generate. If events are concatenated, they must appear shortly after each other.

FUNC will be called if the event sequence occurs with an instance of Event as argument. If the return value of FUNC is "break", no further bound function is invoked.

An additional Boolean parameter ADD specifies whether FUNC will be called additionally to the other bound function or whether it will replace the previous function. Bind will return an identifier to allow deletion of the bound function with unbind without memory leak.

If FUNC or SEQUENCE is omitted, the bound function or list of bound events are returned.

bind_all(self, sequence=None, func=None, add=None)

Bind to all widgets at an event SEQUENCE a call to function FUNC. An additional Boolean parameter ADD specifies whether FUNC will be called additionally to the other bound function, or whether it will replace the previous function. See bind for the return value.

bind_class(self, className, sequence=None, func=None, add=None)

Bind to widgets with bind tag CLASSNAME at event SEQUENCE a call of function FUNC. An additional Boolean parameter ADD specifies whether FUNC will be called additionally to the other bound function or whether it will replace the previous function. See bind for the return value.

bindtags(self, tagList=None)

Set or get the list of bindtags for this widget. With no argument, return the list of all bindtags associated with this widget. With a list of strings as argument the bindtags are set to this list. The bindtags determine in which order events are processed (see bind).

cget(self, key)

Return the resource value for a Key given as string.

clipboard_append(self, string, **kw)

Append String to the Tk clipboard. A widget specified at the optional display of keyword argument specifies the target display. The clipboard can be retrieved with selection_get.

clipboard_clear(self, **kw)

Clear the data in the Tk clipboard. A widget specified for the optional display of keyword argument specifies the target display.

clipboard_get(self, **kw)

Retrieve data from the clipboard on window's display. The window keyword defaults to the root window of the Tkinter application. The type keyword specifies the form in which the data is to be returned, and should be an atom name, such as STRING or FILE_NAME. Type defaults to String. This command is equivalent to: selection_get(CLIPBOARD).

columnconfigure = grid_columnconfigure(self, index, cnf={}, **kw)

Configure column Index of a grid. Valid resources are minsize (minimum size of the column),weight (how much does additional space propagate to this column), and pad (how much space to let additionally).

config = configure(self, cnf=None, **kw)

Configure resources of a widget. The values for resources are specified as keyword arguments. To get an overview about the allowed keyword arguments, call the method keys.

event_add(self, virtual, *sequences)

Bind a virtual event virtual (of the form <<Name>>) to an event sequence such that the virtual event is triggered whenever SEQUENCE occurs.

event_delete(self, virtual, *sequences)

Unbind a virtual event virtual from sequence.

event_generate(self, sequence, **kw)

Generate an event sequence. Additional keyword arguments specify parameter of the event(for example, x, y, rootx, and rooty).

event_info(self, virtual=None)

Return a list of all virtual events or the information

about the sequence bound to the virtual event virtual.

focus = focus_set(self)

Direct input focus to this widget. If the application currently does not have the focus, this widget will get the focus if the application gets the focus through the window manager.

focus_displayof(self)

Return the widget which has currently the focus on the display where this widget is located. Return None if the application does not have the focus.

focus_force(self)

Direct input focus to this widget even if the application does not have the focus. Use with caution!

focus_get(self)

Return the widget which has currently the focus in the application. Use focus_displayof to allow working with several displays. Return None if application does not have the focus.

focus_lastfor(self)

Return the widget which would have the focus if top level for this widget gets the focus from the window manager.

focus_set(self)

Direct input focus to this widget. If the application currently does not have the focus this widget will get the focus if the application gets the focus through the window manager.

getboolean(self, s)

Return a Boolean value for Tclboolean values true and false given as parameter.

getvar(self, name='PY_VAR')

Return value of Tcl variable name.

grab_current(self)

Return widget which has currently the grab in this application or None.

grab_release(self) )

Release grab for this widget if currently set.

grab_set(self)

Set grab for this widget. A grab directs all events to this and descendant widgets in the application.

grab_set_global(self)

Set global grab for this widget. A global grab directs all events to this and descendant widgets on the display. Use with caution - other applications do not get events anymore.

grab_status(self)

Return None, "local" or "global" if this widget has no, a local or a global grab.

grid_bbox(self, column=None, row=None, col2=None, row2=None)

Return a tuple of integer coordinates for the bounding box of this widget controlled by the geometry manager grid. If column, row is given, the bounding box applies from the cell with row and column 0 to the specified cell. If col2 and row2 are given, the bounding box starts at that cell. The returned integers specify the offset of the upper left corner in the master widget and the width and height.

grid_columnconfigure(self, index, cnf={}, **kw)

Configure column index of a grid. Valid resources are minsize (minimum size of the column), weight (how much does additional space propagate to this column), and pad (how much space to let additionally).

grid_location(self, x, y)

Return a tuple of column and row which identify the cell at which the pixel at position x and y inside the master widget is located.

grid_propagate(self, flag=['_noarg_'])

Set or get the status for propagation of geometry information. A Boolean argument specifies whether the geometry information of the slaves will determine the size of this widget. If no argument is given, the current setting will be returned.

grid_rowconfigure(self, index, cnf={}, **kw)

Configure row index of a grid. Valid resources are minsize (minimum size of the row),weight (how much does additional space propagate to this row), and pad (how much space to let additionally).

grid_size(self)

Return a tuple of the number of column and rows in the grid.

grid_slaves(self, row=None, column=None)

Return a list of all slaves of this widget in its packing order.

image_names(self)

Return a list of all existing image names.

image_types(self)

Return a list of all available image types (e.g. photo bitmap).

keys(self)

Return a list of all resource names of this widget.

lift = tkraise(self, aboveThis=None)

Raise this widget in the stacking order.

lower(self, belowThis=None)

Lower this widget in the stacking order.

mainloop(self, n=0)

Call the mainloop of Tk.

nametowidget(self, name)

Return the Tkinter instance of a widget identified by its Tcl name NAME.

option_add(self, pattern, value, priority=None)

Set a value (second parameter) for an option PATTERN (first parameter). An optional third parameter gives the numeric priority (defaults to 80).

option_clear(self)

Clear the option database. It will be reloaded if option_add is called.

option_get(self, name, className)

Return the value for an option NAME for this widget with classname. Values with higher priority override lower values.

option_readfile(self, fileName, priority=None)

Read file filename into the option database. An optional second parameter gives the numeric priority.

propagate =pack_propagate(self, flag=['_noarg_'])

Set or get the status for propagation of geometry information. A Boolean argument specifies whether the geometry information of the slaves will determine the size of this widget. If no argument is given, the current setting will be returned.

pack_slaves(self)

Return a list of all slaves of this widget in its packing order.

quit(self)

Quit the Tcl interpreter. All widgets will be destroyed.

register = _register(self, func, subst=None, needcleanup=1)

Return a newly created Tcl function. If this function is called, the Python function func will be executed. An optional function subst can be given, which will be executed before func.

rowconfigure = grid_rowconfigure(self, index, cnf={}, **kw)

Configure row index of a grid. Valid resources are minsize (minimum size of the row), weight (how much does additional space propagate to this row), and pad (how much space to let additionally).

selection_clear(self, **kw)'

Clear the current X selection.

selection_get(self, **kw)

Return the contents of the current X selection. A keyword parameter selection specifies the name of the selection and defaults to PRIMARY. A keyword parameter display of specifies a widget on the display to use.

selection_handle(self, command, **kw)

Specify a function command to call if the X selection owned by this widget is queried by another application. This function must return the contents of the selection. The function will be called with the arguments OFFSET and LENGTH, which allows the chunking of very long selections. The following keyword parameters can be provided: selection - name of the selection (default PRIMARY), type - type of the selection (for example, string, FILE_NAME).

selection_own(self, **kw)

Become owner of X selection. A keyword parameter selection specifies the name of the selection (default PRIMARY).

selection_own_get(self, **kw)

Return owner of X selection. The following keyword parameter can be provided: selection - name of the selection (default PRIMARY), type - type of the selection (e.g. STRING, FILE_NAME).

send(self, interp, cmd, *args)

Send Tcl command CMD to different interpreter INTERP to be executed.

setvar(self, name='PY_VAR', value='1')

Set Tcl variable NAME to VALUE.

size = grid_size(self)

Return a tuple of the number of column and rows in the grid.

slaves = pack_slaves(self)

Return a list of all slaves of this widget in its packing order.

tk_focusFollowsMouse(self)

The widget under mouse will get automatically focus. Cannot be disabled easily.

tk_focusNext(self)

Return the next widget in the focus order which follows widget which has currently the focus. The focus order first goes to the next child, then to the children of the child recursively and then to the next sibling which is higher in the stacking order. A widget is omitted if it has the takefocus resource set to 0.

tk_focusPrev(self)

Return previous widget in the focus order. See tk_focusNext for details.

tk_setPalette(self, *args, **kw)

Set a new color scheme for all widget elements. A single color as argument will cause that all colors of Tk widget elements are derived from this. Alternatively, several keyword parameters and its associated colors can be given. The following keywords are valid: activeBackground, foreground, selectColor, activeForeground, highlightBackground, selectBackground, background, highlightColor, selectForeground, disabledForeground, insertBackground, and troughColor.

tkraise(self, aboveThis=None)

Raise this widget in the stacking order.

unbind(self, sequence, funcid=None)

Unbind for this widget for event SEQUENCE the function identified with FUNCID.

unbind_all(self, sequence)'

Unbind for all widgets for event SEQUENCE all functions.

unbind_class(self, className, sequence)

Unbind all widgets with bindtag classname for event sequence all functions.

update(self)

Enter event loop until all pending events have been processed by Tcl.

update_idletasks(self)

Enter event loop until all idle callbacks have been called. This will update the display of windows, but not process events caused by the user.

wait_variable(self, name='PY_VAR')

Wait until the variable is modified. A parameter of type IntVar, StringVar, DoubleVar, or BooleanVar must be given.

wait_visibility(self, window=None)

Wait until the visibility of a Widget changes(for example, it appears).If no parameter is given self is used.

wait_window(self, window=None)

Wait until a Widget is destroyed. If no parameter is given, self is used.

waitvar = wait_variable(self, name='PY_VAR')

Wait until the variable is modified. A parameter of type IntVar, StringVar, DoubleVar, or BooleanVar must be given.

winfo_atom(self, name, displayof=0)

Return integer which represents atom name.

winfo_atomname(self, id, displayof=0)

Return name of atom with identifier ID.

winfo_cells(self)

Return number of cells in the colormap for this widget.

winfo_children(self)

Return a list of all widgets which are children of this widget.

winfo_class(self)

Return window class name of this widget.

winfo_colormapfull(self)

Return true if at the last color request the colormap was full.

winfo_containing(self, rootX, rootY, displayof=0)

Return the widget which is at the root coordinates rootX, rootY.

winfo_depth(self)

Return the number of bits per pixel.

winfo_exists(self)

Return true if this widget exists.

winfo_fpixels(self, number)

Return the number of pixels for the given distance NUMBER (e.g. "3c") as float.

winfo_geometry(self)

Return geometry string for this widget in the form "widthxheight+X+Y".

winfo_height(self)

Return height of this widget.

winfo_id(self)

Return identifier ID for this widget.

winfo_interps(self, displayof=0)

Return the name of all Tcl interpreters for this display.

winfo_ismapped(self)

Return true if this widget is mapped.

winfo_manager(self)

Return the window manager name for this widget.

winfo_name(self)

Return the name of this widget.

winfo_parent(self)

Return the name of the parent of this widget.

winfo_pathname(self, id, displayof=0)

Return the pathname of the widget given by ID.

winfo_pixels(self, num)

Rounded integer value of winfo_fpixels.

winfo_pointerx(self)

Return the x coordinate of the pointer on the root window.

winfo_pointerxy(self)

Return a tuple of x and y coordinates of the pointer on the root window.

winfo_pointery(self)

Return the y coordinate of the pointer on the root window.

winfo_reqheight(self)

Return requested height of this widget.

winfo_reqwidth(self)

Return requested width of this widget.

winfo_rgb(self, color)

Return tuple of decimal values for red, green, blue for color in this widget.

winfo_rootx(self) / winfo_rooty(self)

Return x/y coordinate of upper left corner of this widget on the root window.

winfo_screen(self)

Return the screen name of this widget.

winfo_screencells(self)

Return the number of the cells in the colormap of the screen of this widget.

winfo_screendepth(self)

Return the number of bits per pixel of the root window of the screen of this widget.

winfo_screenheight(self)

Return the number of pixels of the height of the screen of this widget in pixel.

winfo_screenmmheight(self)

Return the number of pixels of the height of the screen of this widget in mm.

winfo_screenmmwidth

(self)

Return the number of pixels of the width of the screen of this widget in mm.

winfo_screenwidth(self)

Return the number of pixels of the width of the screen of this widget in pixel.

winfo_toplevel(self)

Return the Toplevel widget of this widget.

winfo_viewable(self)

Return true if the widget and all its higher ancestors are mapped.

winfo_visual(self) = winfo_screenvisual(self)

Return one of the strings directcolor, grayscale, pseudocolor, staticcolor, staticgray, or truecolor for the colormodel of this widget.

winfo_visualid(self)

Return the X identifier for the visual for this widget.

winfo_visualsavailable(self, includeids=0)

Return a list of all visuals available for the screen of this widget.

winfo_vrootheight(self)

Return the height of the virtual root window associated with this widget in pixels. If there is no virtual root window, return the height of the screen.

winfo_vrootwidth(self)

Return the width of the virtual root window associated with this widget in pixel. If there is no virtual root window, return the width of the screen.

winfo_vrootx(self)

Return the x offset of the virtual root relative to the root window of the screen of this widget.

winfo_vrooty(self)

Return the y offset of the virtual root relative to the root window of the screen of this widget.

winfo_width(self)

Return the width of this widget.

winfo_x(self)

Return the x coordinate of the upper left corner of this widget in the parent.

winfo_y(self)

Return the y coordinate of the upper left corner of this widget in the parent.