You are here

Tcl/Tk - Recent Advances

Ladybug with warm background
Credit: freebird4, License: by-nc

There has been a lot of news in the Tcl/Tk community the last month or so, and I thought it's time to compile them here since Coccinella is written in Tcl. Tcl's windowing toolkit, Tk, has been "known" to be ugly and outdated. With the 8.5 release last December the tile package, now named ttk (Themed Tk), is included in the core which brings true native widgets on Windows (yes, Vista too) and Mac. Since Mac is my native platform, I can tell you that Tk beats both Qt and gtk, but perhaps I haven't seen the latest of them.

The question is then, where does this put Linux/Unix? There are a number of themes included in ttk which looks OK on these platforms, but there is nothing exactly like Qt or gtk. Instead, there have been a tileqt package written by Georgios Petasis which has delivered true Qt widgets. With ttk in the core, there have been some initial problems getting this to work due to missing stub tables etc., but it should work with the latest Tcl/Tk 8.5.3 release.

Just a few days ago the very same person announced tilegtk which does the same thing for the gtk toolkit. This is very, very, good news. Imagine that you can switch theme, and toolkits, on the fly without any program restart. This already works with the other themes and will likely work with tilegtk as well. My question to you is: which other toolkit has this flexibility?

I have already mentioned my recent advances with tkpath in this blog thread, and I will mention it again. This is the super canvas which is lacking in Tk, and which will bring not only tight SVG support, but also make Tk come on par with canvas like widgets from other toolkits. Still more to do.

Recently my attention turned to WebKit which has its history of its own. Dual licensed as LGPL/BSD it fits the Tcl community well. I have looked at some of the sources, and judging from the wxWidgets backend, it doesn't look terribly difficult to make it a Tk widget, but there could be show stoppers, like event loop integration etc.

When all this comes together it will make Tk a very competitive toolkit.


Hi Mats,

Out of curiosity, why is Tk better than Qt?


At least the Qt applications I have seen on my Mac look terrible. Both the dialog layouts and the standard dialogs are very far from native Mac apps. But maybe I have seen older versions of Qt, I don't know. And maybe the programmers were lousy on UI design, I can't judge that either. I wont mention the apps I have seen in this forum.

Second, the license. Qt being dual licensed into one commercial license effectively stops any hobby programmer going seriously into the business world.

Today, Georgios Petasis seems to have announced TileGTK 0.2, the second version of his GTK Ttk theme.

I read it. Mainly build system changes to allow no static linkage to the gtk libs which will reduce its weight by 95% or so, and likely increase its portability among different gtk versions.

Qt's license isn't geared for casual commercial programmers, that's true. Tcl/Tk is better here.