Code by Kevin

About
Code by Kevin, Programming, code, business, and other pursuits

Your Host
Kevin Walzer, software developer.



Home

Subscribe to RSS Feed
Get a syndicated feed of my weblog.

Archives
2018
2017
2016
2015
2014
2013
2012
2011
2010
2009
2008
2007
2006

Categories
Business
Software
General

Privacy Policy

Site design: Skeleton

 

Sat, 27 Jan 2007

Limitations and choices

I think I've reached a moment of truth in my use of Python for programming: its Tkinter GUI toolkit is simply too limited for rich GUI's.

As I noted before, Python itself is a very rich, very powerful language, but it's harder to use its Tk GUI bindings than from Tk's native language, Tcl. I've done work in trying to integrate Tkinter better with some cool Tk libraries that allow more sophisticated GUI's.

Nonetheless, things aren't working the way I would like. I keep running into various bugs of one sort or another, in which things don't work under Python the way they would work under Tcl, and these bugs are beyond my ability to fix.

One example: I want to use Python's bindings to the BWidget Tk library, which allows for richer GUI's than the base Tk widgets (BWidgets provides a tree widget, drag and drop, listboxes with images, and so on). But I can't get things to work quite right: no matter what I do, I can't figure out how to get selected text to display properly. This bug report went unanswered, which means I'm pretty much on my own here.

This means I have a couple of choices if I want to develop an application with a GUI more sophisticated than PacketStream's; I can use Python with another GUI toolkit, such as wxPython, or I can use Tcl as the development language.

Given my investment in Tcl, and my reluctance to spend yet more time learning another GUI toolkit, I think this decision is pretty easy.

I'll certainly continue to develop PacketStream in Python, and there may be instances where Python is an attractive option and the requirements of a GUI do not exceed what Python/Tkinter can deliver. But absent that, I will be concentrating more of my development time on Tcl.

[/general] permanent link