Scrollutil , by Csaba Nemethi, is a scrolling utilities package for Tk 8.0 or higher, written in pure Tcl code.


latest release
release time
Csaba Nemethi


The Scrollutil package contains:

  • the implementation of the scrollarea, scrollsync, and scrollableframe mega-widgets, including a general utility module for mega-widgets;
  • commands for user-friendly mouse wheel event handling in scrollable widget containers like scrollutil::scrollableframe, BWidget ScrollableFrame, and iwidgets::scrolledframe;
  • demo scripts illustrating the use of the Scrollutil package in connection with various scrollable widgets and the above-mentioned scrollable widget containers;
  • a programmer's guide and reference pages in HTML format.

The scrollutil::scrollarea mega-widget greatly simplifies the creation of arbitrary scrolled widgets. It consists of a scrollable widget and two scrollbars connected with that widget. The display mode of each scrollbar can be static, dynamic, or none.

The scrollutil::scrollsync mega-widget is designed for scrolling several widgets simultaneously. It is horizontally and vertically scrollable, hence it can be embedded into a scrollutil::scrollarea widget via the latter's setwidget subcommand.

The scrollutil::scrollableframe mega-widget is a lightweight, theme-able, and full-featured replacement for BWidget ScrollableFrame and iwidgets::scrolledframe. Arbitrary regions of its content frame can be brought into view by scrolling, and the widget also provides a see subcommand for making individual widgets contained in the content frame visible in the scrollableframe window.

The commands for mouse wheel event handling in scrollable widget containers make sure that the mouse wheel events will only scroll the widget under the pointer if it has the focus, otherwise they will scroll the widget container that is an ancestor of the widget in question and is contained in the latter's toplevel.

Jeff Smith 2019-11-05 : Below is an online demo using CloudTk.