Tk::Dial - An alternative to the Scale widget


    use Tk::Dial;

    $dial = $widget->Dial(-margin =>  20,
                          -radius =>  48,
                          -min    =>   0,
                          -max    => 100,
                          -value  =>   0,
                          -format => '%d');

    margin - blank space to leave around dial
    radius - radius of dial
    min, max - range of possible values
    value  - current value
    format - printf-style format for displaying format

Values shown above are defaults.


A dial looks like a speedometer: a 3/4 circle with a needle indicating the current value. Below the graphical dial is an entry that displays the current value, and which can be used to enter a value by hand.

The needle is moved by pressing button 1 in the canvas and dragging. The needle will follow the mouse, even if the mouse leaves the canvas, which allows for high precision. Alternatively, the user can enter a value in the entry space and press Return to set the value; the needle will be set accordingly.


 Tick marks
 Step size


Roy Johnson <>

Based on a similar widget in XV, a program by John Bradley <>


August 1995: Released for critique by pTk mailing list