24.3. Tix
— Extension widgets for Tk
The Tix
(Tk Interface Extension) module provides an additional rich set
of widgets. Although the standard Tk library has many useful widgets, they are
far from complete. The Tix
library provides most of the commonly needed
widgets that are missing from standard Tk: HList
, ComboBox
,
Control
(a.k.a. SpinBox) and an assortment of scrollable widgets.
Tix
also includes many more widgets that are generally useful in a wide
range of applications: NoteBook
, FileEntry
,
PanedWindow
, etc; there are more than 40 of them.
With all these new widgets, you can introduce new interaction techniques into applications, creating more useful and more intuitive user interfaces. You can design your application by choosing the most appropriate widgets to match the special needs of your application and users.
Note
Tix
has been renamed to tkinter.tix
in Python 3. The
2to3 tool will automatically adapt imports when converting your
sources to Python 3.
See also
- Tix Homepage
- The home page for
Tix
. This includes links to additional documentation and downloads. - Tix Man Pages
- On-line version of the man pages and reference material.
- Tix Programming Guide
- On-line version of the programmer’s reference material.
- Tix Development Applications
- Tix applications for development of Tix and Tkinter programs. Tide applications work under Tk or Tkinter, and include TixInspect, an inspector to remotely modify and debug Tix/Tk/Tkinter applications.
24.3.1. Using Tix
-
class
Tix.
Tix
(screenName[, baseName[, className]]) Toplevel widget of Tix which represents mostly the main window of an application. It has an associated Tcl interpreter.
Classes in the
Tix
module subclasses the classes in theTkinter
module. The former imports the latter, so to useTix
with Tkinter, all you need to do is to import one module. In general, you can just importTix
, and replace the toplevel call toTkinter.Tk
withTix.Tk
:import Tix from Tkconstants import * root = Tix.Tk()
To use Tix
, you must have the Tix
widgets installed, usually
alongside your installation of the Tk widgets. To test your installation, try
the following:
import Tix
root = Tix.Tk()
root.tk.eval('package require Tix')
If this fails, you have a Tk installation problem which must be resolved before
proceeding. Use the environment variable TIX_LIBRARY
to point to the
installed Tix
library directory, and make sure you have the dynamic
object library (tix8183.dll
or libtix8183.so
) in the same
directory that contains your Tk dynamic object library (tk8183.dll
or
libtk8183.so
). The directory with the dynamic object library should also
have a file called pkgIndex.tcl
(case sensitive), which contains the
line:
package ifneeded Tix 8.1 [list load "[file join $dir tix8183.dll]" Tix]
24.3.2. Tix Widgets
Tix
introduces over 40 widget classes to the Tkinter
repertoire. There is a
demo of all the Tix
widgets in the Demo/tix
directory of the
standard distribution.
24.3.2.1. Basic Widgets
-
class
Tix.
Balloon
A Balloon that pops up over a widget to provide help. When the user moves the cursor inside a widget to which a Balloon widget has been bound, a small pop-up window with a descriptive message will be shown on the screen.
-
class
Tix.
ButtonBox
The ButtonBox widget creates a box of buttons, such as is commonly used for
Ok Cancel
.
-
class
Tix.
ComboBox
The ComboBox widget is similar to the combo box control in MS Windows. The user can select a choice by either typing in the entry subwidget or selecting from the listbox subwidget.
-
class
Tix.
Control
The Control widget is also known as the
SpinBox
widget. The user can adjust the value by pressing the two arrow buttons or by entering the value directly into the entry. The new value will be checked against the user-defined upper and lower limits.
-
class
Tix.
LabelEntry
The LabelEntry widget packages an entry widget and a label into one mega widget. It can be used to simplify the creation of “entry-form” type of interface.
-
class
Tix.
LabelFrame
The LabelFrame widget packages a frame widget and a label into one mega widget. To create widgets inside a LabelFrame widget, one creates the new widgets relative to the
frame
subwidget and manage them inside theframe
subwidget.
-
class
Tix.
Meter
The Meter widget can be used to show the progress of a background job which may take a long time to execute.
-
class
Tix.
OptionMenu
The OptionMenu creates a menu button of options.
-
class
Tix.
PopupMenu
The PopupMenu widget can be used as a replacement of the
tk_popup
command. The advantage of theTix
PopupMenu
widget is it requires less application code to manipulate.
-
class
Tix.
Select
The Select widget is a container of button subwidgets. It can be used to provide radio-box or check-box style of selection options for the user.
-
class
Tix.
StdButtonBox
The StdButtonBox widget is a group of standard buttons for Motif-like dialog boxes.
24.3.2.2. File Selectors
-
class
Tix.
DirList
The DirList widget displays a list view of a directory, its previous directories and its sub-directories. The user can choose one of the directories displayed in the list or change to another directory.
-
class
Tix.
DirTree
The DirTree widget displays a tree view of a directory, its previous directories and its sub-directories. The user can choose one of the directories displayed in the list or change to another directory.
-
class
Tix.
DirSelectDialog
The DirSelectDialog widget presents the directories in the file system in a dialog window. The user can use this dialog window to navigate through the file system to select the desired directory.
-
class
Tix.
DirSelectBox
The
DirSelectBox
is similar to the standard Motif(TM) directory-selection box. It is generally used for the user to choose a directory. DirSelectBox stores the directories mostly recently selected into a ComboBox widget so that they can be quickly selected again.
-
class
Tix.
ExFileSelectBox
The ExFileSelectBox widget is usually embedded in a tixExFileSelectDialog widget. It provides a convenient method for the user to select files. The style of the
ExFileSelectBox
widget is very similar to the standard file dialog on MS Windows 3.1.
-
class
Tix.
FileSelectBox
The FileSelectBox is similar to the standard Motif(TM) file-selection box. It is generally used for the user to choose a file. FileSelectBox stores the files mostly recently selected into a
ComboBox
widget so that they can be quickly selected again.
-
class
Tix.
FileEntry
The FileEntry widget can be used to input a filename. The user can type in the filename manually. Alternatively, the user can press the button widget that sits next to the entry, which will bring up a file selection dialog.
24.3.2.3. Hierarchical ListBox
-
class
Tix.
HList
The HList widget can be used to display any data that have a hierarchical structure, for example, file system directory trees. The list entries are indented and connected by branch lines according to their places in the hierarchy.
-
class
Tix.
CheckList
The CheckList widget displays a list of items to be selected by the user. CheckList acts similarly to the Tk checkbutton or radiobutton widgets, except it is capable of handling many more items than checkbuttons or radiobuttons.
-
class
Tix.
Tree
The Tree widget can be used to display hierarchical data in a tree form. The user can adjust the view of the tree by opening or closing parts of the tree.
24.3.2.4. Tabular ListBox
-
class
Tix.
TList
The TList widget can be used to display data in a tabular format. The list entries of a
TList
widget are similar to the entries in the Tk listbox widget. The main differences are (1) theTList
widget can display the list entries in a two dimensional format and (2) you can use graphical images as well as multiple colors and fonts for the list entries.
24.3.2.5. Manager Widgets
-
class
Tix.
PanedWindow
The PanedWindow widget allows the user to interactively manipulate the sizes of several panes. The panes can be arranged either vertically or horizontally. The user changes the sizes of the panes by dragging the resize handle between two panes.
-
class
Tix.
ListNoteBook
The ListNoteBook widget is very similar to the
TixNoteBook
widget: it can be used to display many windows in a limited space using a notebook metaphor. The notebook is divided into a stack of pages (windows). At one time only one of these pages can be shown. The user can navigate through these pages by choosing the name of the desired page in thehlist
subwidget.
-
class
Tix.
NoteBook
The NoteBook widget can be used to display many windows in a limited space using a notebook metaphor. The notebook is divided into a stack of pages. At one time only one of these pages can be shown. The user can navigate through these pages by choosing the visual “tabs” at the top of the NoteBook widget.
24.3.2.6. Image Types
The Tix
module adds:
- pixmap
capabilities to all
Tix
andTkinter
widgets to create color images from XPM files. - Compound image
types can be used to create images that consists of multiple horizontal lines;
each line is composed of a series of items (texts, bitmaps, images or spaces)
arranged from left to right. For example, a compound image can be used to
display a bitmap and a text string simultaneously in a Tk
Button
widget.
24.3.2.7. Miscellaneous Widgets
-
class
Tix.
InputOnly
The InputOnly widgets are to accept inputs from the user, which can be done with the
bind
command (Unix only).
24.3.3. Tix Commands
-
class
Tix.
tixCommand
The tix commands provide access to miscellaneous elements of
Tix
‘s internal state and theTix
application context. Most of the information manipulated by these methods pertains to the application as a whole, or to a screen or display, rather than to a particular window.To view the current settings, the common usage is:
import Tix root = Tix.Tk() print root.tix_configure()
-
tixCommand.
tix_configure
(cnf=None **kw) Query or modify the configuration options of the Tix application context. If no option is specified, returns a dictionary all of the available options. If option is specified with no value, then the method returns a list describing the one named option (this list will be identical to the corresponding sublist of the value returned if no option is specified). If one or more option-value pairs are specified, then the method modifies the given option(s) to have the given value(s); in this case the method returns an empty string. Option may be any of the configuration options.
-
tixCommand.
tix_cget
(option) Returns the current value of the configuration option given by option. Option may be any of the configuration options.
-
tixCommand.
tix_getbitmap
(name) Locates a bitmap file of the name
name.xpm
orname
in one of the bitmap directories (see thetix_addbitmapdir()
method). By usingtix_getbitmap()
, you can avoid hard coding the pathnames of the bitmap files in your application. When successful, it returns the complete pathname of the bitmap file, prefixed with the character@
. The returned value can be used to configure thebitmap
option of the Tk and Tix widgets.
-
tixCommand.
tix_addbitmapdir
(directory) Tix maintains a list of directories under which the
tix_getimage()
andtix_getbitmap()
methods will search for image files. The standard bitmap directory is$TIX_LIBRARY/bitmaps
. Thetix_addbitmapdir()
method adds directory into this list. By using this method, the image files of an applications can also be located using thetix_getimage()
ortix_getbitmap()
method.
-
tixCommand.
tix_filedialog
([dlgclass]) Returns the file selection dialog that may be shared among different calls from this application. This method will create a file selection dialog widget when it is called the first time. This dialog will be returned by all subsequent calls to
tix_filedialog()
. An optional dlgclass parameter can be passed as a string to specified what type of file selection dialog widget is desired. Possible options aretix
,FileSelectDialog
ortixExFileSelectDialog
.
-
tixCommand.
tix_getimage
(self, name) Locates an image file of the name
name.xpm
,name.xbm
orname.ppm
in one of the bitmap directories (see thetix_addbitmapdir()
method above). If more than one file with the same name (but different extensions) exist, then the image type is chosen according to the depth of the X display: xbm images are chosen on monochrome displays and color images are chosen on color displays. By usingtix_getimage()
, you can avoid hard coding the pathnames of the image files in your application. When successful, this method returns the name of the newly created image, which can be used to configure theimage
option of the Tk and Tix widgets.
-
tixCommand.
tix_option_get
(name) Gets the options maintained by the Tix scheme mechanism.
-
tixCommand.
tix_resetoptions
(newScheme, newFontSet[, newScmPrio]) Resets the scheme and fontset of the Tix application to newScheme and newFontSet, respectively. This affects only those widgets created after this call. Therefore, it is best to call the resetoptions method before the creation of any widgets in a Tix application.
The optional parameter newScmPrio can be given to reset the priority level of the Tk options set by the Tix schemes.
Because of the way Tk handles the X option database, after Tix has been has imported and inited, it is not possible to reset the color schemes and font sets using the
tix_config()
method. Instead, thetix_resetoptions()
method must be used.