

In many cases, the facilities they provide have been obsoleted by newer and more modern facilities recently built into Tk itself. While they "work", they can make your application appear extremely dated or out of place. However, they may not reflect current platform conventions or styles. These extensions generally continue to work with newer versions. Because core Tk has always been highly backward compatible, Many of these extensions were created decades ago. Some well-known and quite popular Tk extensions include BLT, Tix, iWidgets, BWidgets Over the years,ĭevelopers have created all kinds of add-ons to Tk, for example, adding new widgets not available in the core (or at When it comes to modern best practices, Tk extensions deserve a special word of note.

So to sum up: modern desktop graphical user interfaces, using modern conventions and design sense, using the modern tools Thankfully, this isn't nearly as hard as it used to be before Tk 8.5. In this tutorial, we're going to focus on what Ones most of the good ones people don't even know are done in Tk. Still, with the properĬare and attention, it can also be used to develop spectacularly good ones. Like any GUI tool, it can be used to create absolutely terrible looking and outdated user interfaces.

Some of this has been well deserved, most of it not so Tk has, for most of its lifetime, gotten a bad rap, to put it mildly. (and backward compatible) may be challenging. You can see where keeping something as large and complex as a GUI library up to date Couple that with how much graphical user interface platforms and standards Tk has hadĪ very long evolution (see Tk Backgrounder), and any evolution The best practices you need to know to do this.įor most tools, you wouldn't think you'd have to say something like that. This tutorial is all about building modern user interfaces using the current tools Tk has to offer. While you don't have to be a user interface designer, some appreciation of GUI design is always helpful. Similarly, you should have a basic familiarity with desktop applications in This tutorial also doesn't teach you the underlying programming language (Tcl, Ruby, Perl, Python, etc.), so you should

This is probably not the material for you. So if you're either looking to hack on Tk's internal C code or build the next great 3D immersive game interface, Mainstream graphical user interfaces, with buttons, lists, checkboxes, rich text editing, 2D graphics, etc. This tutorial is designed for developers building tools and applications in Tk. The rest you can find in reference documentation. It's not going to cover everything, just the essentials you need in 95% Even if your own language isn't included, the chances are you'll stillīenefit since all the languages use the same underlying Tk library, there's obviously a lot of overlap. Over time, additional languages may be added. Initially, the tutorial will cover Tcl, Ruby, Perl and Python. So this tutorial will, as much as possible, target developers on the three main platforms (Windows, macOS, Linux), and alsoīe language-neutral. This is particularly true for developers using Tk from languages other than Tcl,Īnd developers working on multiple platforms. Unfortunately not at a high point these days. The general state of Tk documentation (outside the Tcl-oriented reference documentation, which is excellent) is Writing this tutorial, and I've been using Tk for over twenty-five years. It's a cliche, but I can't believe how much I've learned in And if you're updating code that may have been written years ago, you'll see step-by-step how to bring it into the modern age. If you've used Tk before, it will help you bring your knowledge right up to date. If you're new to Tk or creating a new program, this tutorial will ensure you get started the right way. They've hidden the light switches and power outlets, wouldn't you?) (Imagine if you just moved into a rustic and quirky historical home. In fact, it will seem like nothing changed at all.ĭue to backward compatibility, unless existing programs make a few simple changes, they won't look anyĭifferent. The downside is that unless you know one or two crucial things, it's actually not that significant a release. It marked a significantĭeparture from older versions of Tk that most people know and love recognize. class Application : TkdApplication // Extend TkdApplication.This tutorial will help you quickly get up to speed and build mainstream desktop graphical user
