ANNOUNCE: Multi-column listbox and tree widget package Tablelist 6.15

Skip to first unread message


Sep 7, 2021, 11:00:49 AMSep 7
I am pleased to announce version 6.15 of the multi-column listbox and
tree widget package Tablelist.

What is new in Tablelist 6.15?

1. Added the "dumptofile" and "loadfromfile" subcommands, inspired by
some procedures related to a special type of tablelists, posted by
Helmut Giese on the Wiki (note that these new subcommands are not
restricted to any particular tablelist type).

2. The "dicttoitem" subcommand no longer expects all dictionary keys to
be valid column indices; instead, it simply ignores those keys that
don't fulfill this condition (thanks to Dieter Lonken for his

3. Added code that handles the virtual event <<TkWorldChanged>> with the
"user_data" field (%d) set to "FontChanged", which, with Tk versions
later than 8.6.11 and 8.7.a5, will be sent by the Tk engine to all
widgets when a font is changed, for example, by invoking "font
configure" (see TIP 608).

4. Adapted the sort rank bitmaps used in multi-column sorting to the
display's scaling percentage.

5. Worked around a serious regression in Tk 8.6 regarding the text
widget's "see" subcommand, which caused several performance problems
in tablelist widgets containing a tree structure (thanks to Helmut
Giese for reporting some of them on the Wiki).

6. The scrolling in tablelist widgets displaying a tree structure has
become significantly smoother, due to several further code

7. Fixed a bug related to the "searchcolumn" subcommand with the
"-descend" option, which in addition no longer depends on the
interpreter's maximum nesting depth.

8. Adapted the implementation of the "deletecolumns" subcommand to
changes made in current Mac OS versions (thanks to Torsten Berg for
her bug report).

9. Fixed a bug related to the supported scaling percentages on Windows
(thanks to Manfred Schwarz for his bug report).

How to get it?

Tablelist is available for free download from the URL

The distribution file is "tablelist6.15.tar.gz" for UNIX and
"" for Windows. These files contain the same
information, except for the additional carriage return character
preceding the linefeed at the end of each line in the text files for

Tablelist is also included in tklib, which has the address

How to install it?

Install the package as a subdirectory of one of the directories given
by the "auto_path" variable. For example, you can install it as a
directory at the same level as the Tcl and Tk script libraries. The
locations of these library directories are given by the "tcl_library"
and "tk_library" variables, respectively.

To install Tablelist on UNIX, "cd" to the desired directory and unpack
the distribution file "tablelist6.15.tar.gz":

gunzip -c tablelist6.15.tar.gz | tar -xf -

On most UNIX systems this can be replaced with

tar -zxf tablelist6.15.tar.gz

Both commands will create a directory named "tablelist6.15 with the
subdirectories "demos", "doc", and "scripts".

On Windows, use WinZip or some other program capable of unpacking the
distribution file "" into the directory
"tablelist6.15", with the subdirectories "demos", "doc", and "scripts".

How to use it?

The Tablelist distribution provides two packages, called Tablelist and
Tablelist_tile. The main difference between the two is that
Tablelist_tile enables the tile-based, theme-specific appearance of
tablelist widgets; this package requires Tcl/Tk 8.4 or higher and tile
0.6 or higher. It is not possible to use both packages in one and the
same application, because both are implemented in the same "tablelist"
namespace and provide identical commands.

To be able to use the commands and variables implemented in the package
Tablelist, your scripts must contain one of the lines

package require tablelist ?version?
package require Tablelist ?version?

Likewise, to be able to use the commands and variables implemented in
the package Tablelist_tile, your scripts must contain one of the lines

package require tablelist_tile ?version?
package require Tablelist_tile ?version?

Since the packages Tablelist and Tablelist_tile are implemented in the
"tablelist" namespace, you must either import the procedures you need,
or use qualified names like "tablelist::tablelist".

For a detailed description of the commands and variables provided by
Tablelist and of the examples contained in the "demos" directory, see
the tutorial "tablelist.html" and the reference pages, all located in
the "doc" directory.

Csaba Nemethi
Reply all
Reply to author
0 new messages