Pave, sort of geometry manager

The pave software provides a sort of geometry manager for Tcl/Tk.

The pave isn't designed to replace the existing Tk geometry managers (place, pack, grid). Rather the pave tries to simplify the window layout by using their best, by means of:

  • joining the power of grid and pack
  • uniting the creation of widgets with their layout (and mostly their configuration)
  • minimizing a coder's efforts at creating / modifying / removing widgets
  • theming both ttk and non-ttk widgets
  • providing mega-widgets

The pave is implemented as PaveMe oo::class, so that you can enhance it with your own inherited / mixin-ed class.

While PaveMe oo::class allows to layout highly sophisticated windows, you can also employ its more 'earthy' descendants - PaveDialog oo::class and PaveInput oo::class that allow you:

  • to call a variety of dialogs, optionally using a "Don't show again" checkbox and a tagged text
  • to use a variety of widgets in dialogs, including entry, text (incl. readonly and stand-alone), combobox (incl. file content), spinbox, checkbutton, radiobutton and label.
  • to resize windows neatly (however strange, not done in Tk standard dialogs)

At last, a stand-alone dialog allows not only to ask "OK/Cancel" or "Yes/No" returning 1/0 but also to set environment variables to use in shell scripts.

The theming facility of pave is enabled by ObjectTheming oo::class which embraces both ttk and non-ttk widgets, as seen on demo video.

Along with standard widgets, the mentioned pave classes provide a batch of following mega-widgets:

  • file picker
  • saved file picker
  • directory picker
  • font picker
  • color picker
  • date picker
  • menubar
  • toolbar
  • statusbar
  • file combobox
  • file listbox
  • file viewer/editor

Further details:

Download link:

Demo video (3.2 Mb) link:


Below are some screenshots, just to give a glance at this stuff.

PaveMe example

Figure 1. PaveMe example described line by line in

test2_pave.tcl demo

Figure 2. Screenshot of test (test2_pave.tcl).

test2_pave.tcl demo themed

Figure 3. The same as above, just themed.

test2_pave.tcl demo themed

Figure 4. Themed non-ttk widgets.