Nemethi's Tablelist widget vs. Hobb's Tktable widget

Skip to first unread message

Kevin Penrose

Mar 18, 2005, 8:43:13 AM3/18/05


I have just finished reading the release notes for the new release of
Csaba's Tablelist widget, and I'm looking for some feedback from some
experienced users of this widget at Jeff Hobb's TkTable widget.

I have several projects which heavily rely on the TkTable widget and I
like its speed and functionality. But the Tablelist widget looks mighty
appealing also.

So, how do they stack up against each other? Is one better for certain
uses than the other, etc? Is speed an issue with Tablelist? The
interactive cell editing feature of the tablelist widget looks like
something I can use for a particular application, but the table may have
several hundred rows, so I worry about performance.

All opinions welcomed!


-- Kevin

Damon Courtney

Mar 18, 2005, 9:06:54 AM3/18/05
As long as you're not looking at thousands upon thousands of rows,
Tablelist works quite well. In fact, the only real problem I've seen
related to speed in Tablelist is when resizing columns. If you have
tens of thousands of items, the resize can be a little slow.

Other than that, I find Tablelist much easier to use. Tktable is MUCH
faster though, no doubt about it.

I have written a TableList BWidget that is a combination of the two
which I hope to release soon (along with many other things). My time
is limited though, so I can't promise anything. I've started using
this for all of my table needs because I like Tablelist's ease-of-use
and Tktable's speed.

You also might consider the 'treeview' widget in the Tile extension.
It's an up-and-comer that will probably gain a lot more spotlight in
the coming releases.


Roy Terry

Mar 18, 2005, 9:10:37 AM3/18/05
"Kevin Penrose" <> wrote in message

I have some experience with both. I would say
speed can definitely be an issue with the Tablelist
widget. This mainly applies to the speed of re-loading a
list. On my older 600MHz laptop a list of say 250+ lines
(8-10 columns) produces a notable pause while the entries are loaded.
Since the application usually displays fewer than 50 records,
this has not been a serious problem. On the other hand
I've really liked the feature set and appearance of the Tablelist.
And the documentation and support are also very good.
Another plus for me was that since the tablelist was
built on the text widget, I was able to add an incremental
search function that just re-used existing code.
This widget is definitely worth a test drive. :^)

My experience with TkTable is more limited. But
I believe it would be fast for many hundreds/ (even thousands) of rows.
The documentation was (for me) harder to grok but it certainly
works well. I did have some cosmetic issues regarding
fitting text into the columns and hiding rows but that
could have been just me misunderstanding how to
use it.

I suggest loading both
up with a sample set of rows to see what
performance looks like in your model

Other issues to consider are (often)
-Can rows/columns be hidden
-Can rows/columns be made non-scrollable
-Is the sorting behavior sufficient for your needs?
-How flexible is dynamic re-sizing per use pref.?
-Can you acheive the overall look&feel your app
is targeting?


Jeff Hobbs

Mar 18, 2005, 1:02:49 PM3/18/05
to Kevin Penrose
Kevin Penrose wrote:
> I have several projects which heavily rely on the TkTable widget and I
> like its speed and functionality. But the Tablelist widget looks mighty
> appealing also.
> So, how do they stack up against each other? Is one better for certain
> uses than the other, etc? Is speed an issue with Tablelist? The

Tablelist has more built-in features, constructed entirely in
Tcl. Tktable is not as feature rich, but C-based. Tktable
will handle *millions* of cells without problem (assuming you
have the memory). Tablelist will bog down in the hundreds or
thousands of cells, depending on your system.

Jeff Hobbs, The Tcl Guy, a division of Sophos

Csaba Nemethi

Mar 18, 2005, 1:51:52 PM3/18/05

Several hundred rows are really no problem for Tablelist. Neither are
several thousand rows. Of course, a Tcl-only widget can hardly have
the performance of a C-based one, but the appearance, ease of use, and
a very detailed documentation are some aspects worth of consideration.
Not to forget the support and the efforts of the developer (that's me),
to fix reported bugs ASAP and incorporate the many suggestions sent by
the Tablelist users into forthcoming releases.

Jeff Hobbs has already listed some of the advantages of his TkTable
widget. Now it is up to you to decide, what is more important for you.
Depending on the needs of your particular applications, replacing a
TkTable Widget with a tablelist might be a good or bad decision. At any
rate, I heartily recommend you to give Tablelist a try. I would also
be very grateful for any feedback.

Good luck!

Csaba Nemethi

Vaclav Snajdr

Apr 7, 2005, 8:25:37 AM4/7/05
I use tablelist too and have tryied tk-table.

The sort of a tablelist with 120.000 rows with 5 columns
needs to much time, tk-table is quick enough because c-based.
What is to do?

An Cobol man would say - if I must be quickly I sort using
memory otherwise I sort via key-indexed file.

I mean to wrap tk-table's C-routines for build and sort with
parameters and let call this routine from tcl-code (not only from
tablelist but common).

Kevin Penrose wrote:

Vaclav Snajdr


Apr 7, 2005, 6:30:05 PM4/7/05

Ah Ha ! I hope you take this as constructive input. If we all
concentrate more on interface specification then interface users can
easily, freely pick and try implementations. This guy was trying to
start something but it did not gain momentum.


excerpt from his web site .

What is tcl interface
In Tcl "objects" can be created in many ways: in C, in Tcl or in any of
the Tcl OO extensions. The term object is used loosely here for each
compound command: a command with subcommands (methods) that
encapsulates a certain functionality. Different kinds of objects can
often have similar functionality: eg. objects for connecting to
different kinds of databases would be nicely interchangeable if they
would support the same set of methods in the same way. In order to let
objects easily communicate with each other they have to be able to find
out the others functionality.

An interface is a set of (related) methods that provide a predefined
functionality. An object implements an interface if it supports all the
methods in the interface the proper way. Of course, one object can
support multiple interfaces. It can advertise the interfaces it
supports. An interface is basically defined by a description of the
interface and its methods and a test suite.

Reply all
Reply to author
0 new messages