Container widget with optional label.


hwtk::labelframe - pathName ?option value? …


A labelframe widget is a container used to group other widgets together. It has an optional label, which may be a plain text string or another widget.

Standard Options

Database name: borderWidth
Database class: BorderWidth
The desired width of the widget border. Defaults to 0.
Database name: clientData
Database class: ClientData
Acts as a data storage for a widgets. User can store any data and this will not have any effect on widget property.
Database name: cursor
Database class: Cursor
Specifies the mouse cursor to be used for the widget. See Tk_GetCursor and cursors(n) in the Tk reference manual for the legal values. If set to the empty string (the default), the cursor is inherited from the parent widget.
Database name: height
Database class: Height
If specified, the widget’s requested height in pixels.
Database name: help
Database class: Text
Specifies the text or help message that displays when the cursor moves over the widget.
Database name: helpcommand
Database class: Command
Dynamic help which calls an assigned -helpcommand when the user moves the mouse on the widget. The text which is returned by the -helpcommand will be in turn be displayed on the tooltip.
Database name: relief
Database class: Relief
Specifies the 3D effect desired for the widget. Acceptable values are raised, sunken, flat, ridge, solid, and groove. The value indicates how the interior of the widget should appear relative to its exterior; for example, raised means the interior of the widget should appear to protrude from the screen, relative to the exterior of the widget.
Database name: takeFocus
Database class: TakeFocus
Determines whether the window accepts the focus during keyboard traversal. Either 0, 1, a command prefix (to which the widget path is appended, and which should return 0 or 1), or the empty string. See options(n) in the Tk reference manual for the full description.
Database name: underline
Database class: Underline
Specifies the integer index of a character to underline in the widget. This option is used by the default bindings to implement keyboard traversal for menu buttons and menu entries. 0 corresponds to the first character of the text displayed in the widget, 1 to the next character, and so on.
Database name: width
Database class: Width
Specifies the width of a widget.

Widget-Specific Options

Database name: labelAnchor
Database class: LabelAnchor
Specifies where to place the label. Allowed values are (clock-wise from the top upper left corner): nw, n, ne, en,e, es, se, s, sw, ws, w, and wn. The default value is theme-dependent.
Database name: labelWidget
Database class: LabelWidget
The name of a widget to use for the label. If set, overrides the -text option. The -labelwidget must be a child of the labelframe widget or one of the labelframe's ancestors, and must belong to the same top- level widget as the **labelframe.
Database name: padding
Database class: Pad
Additional padding to include inside the border.
Database name: relief
Database class: Relief
One of the standard Tk border styles: flat, groove, raised, ridge, solid, and sunken. Defaults to flat.

Widget Command

pathName configure ?option? ?value option value …?
Query or modify the configuration options of the widget. If one or more option-value pairs are specified, then the command modifies the given widget option(s) to have the given value(s); in this case the command returns an empty string. If option is specified with no value, then the command returns a list describing the named option: the elements of the list are the option name, database name, database class, default value, and current value. If no option is specified, returns a list describing all of the available options for pathName.
pathName cget option
Returns the current value of the configuration option given by option.
pathName identify element x y
Returns the name of the element under the point given by x and y, or an empty string if the point does not lie within any element. x and y are pixel coordinates relative to the widget. Some widgets accept other identify subcommands.
pathName instate statespec ?script?
Test the widget’s state. If script is not specified, returns 1 if the widget state matches statespec and 0 otherwise. If script is specified, equivalent to
pathName state ?stateSpec?
Modify or inquire widget state. If stateSpec is present, sets the widget state: for each flag in stateSpec, sets the corresponding flag or clears it if prefixed by an exclamation point. Returns a new state spec indicating which flags were changed:
will restore pathName to the original state. If stateSpec is not specified, returns a list of the currently-enabled state flags.


set ::activated 0
proc ::EnableButtons {w} {
    foreach child [winfo children $w] {
        if {$child == "$w.cb"} continue
        if {$::activated} {
            $child configure -state normal
        } else {
            $child configure -state disabled

hwtk::dialog .d -title "::hwtk::labelframe"
set d [.d recess]

set w [frame $d.f]
pack $w -side bottom -fill both -expand 1

set lf2 [hwtk::labelframe $w.lf2]
hwtk::checkbutton $lf2.cb -text "Advanced options" -variable activated \
    -command "::EnableButtons $lf2"
$lf2 configure -labelwidget $lf2.cb
pack $lf2 -padx 2m

set i 0
foreach str {Option1 Option2 Option3} {
    pack [hwtk::checkbutton $lf2.b$i -text $str] -side top -fill x -pady 2
    incr i
::EnableButtons $lf2

pack [hwtk::labelframe $w.lf3 -text "North" -labelanchor n -padding 4]
pack [hwtk::label $w.lf3.label -text "Alaska"]

pack [hwtk::labelframe $w.lf4 -text "South" -labelanchor s -padding 4] -pady 4
pack [hwtk::label $w.lf4.label -text "Texas"]

.d post