Synopsis edit
- place window option value ?option value ...?
- place configure window ?option? ?value option value ...?
- place forget window
- place info window
- place slaves window
Documentation edit
Description edit
Manages the geometry of a slave whose pathName is window.The remaining arguments consist of one or more option-value pairs that specify the way in which window 's geometry is managed. Option may have any of the values accepted by the place configure command.Place is the most beautiful & flexible of the Geometry managers supported by Tk. It provides support for fixed or "rubber-sheet" placement of widgets.Examples edit
Egil: I have an example on using place that I want to share, since it demontrates some valuable uses of this geometry manager (especially for resizing windows). I apologize for the missing commands. This script is only runnable in order to show how resizing the main window affects the buttons etc. I will clean it up later I hope.
# # Three horizontal frames stacked on top of each other: # set c_height 0.8 set d_height 0.8 frame .c -background white frame .m frame .d place .c -relx 0 -rely 0 -height ${c_height}c -relwidth 1.0 -width -0.5c place .m -relx 0 -y ${c_height}c -relheight 1.0 -height -[expr {$c_height + $d_height}]c -relwidth 1.0 place .d -relx 0 -rely 1.0 -y -${d_height}c -height ${d_height}c -relwidth 1.0 # # Top frame: Command buttons (to the left) and tabs (to the right): # button .c.open -text "Open" -command open_bufr button .c.getdata -text "Retrieve" -command get_data button .c.exit -text "Exit" -command exit_app pack .c.open .c.getdata .c.exit -side left button .c.data -text "Data" -relief flat -bg grey -command "tabraise data" button .c.overview -text "Overview" -relief flat -bg grey -command "tabraise overview" button .c.options -text "Options" -relief flat -bg grey -command "tabraise options" button .c.help -text "Help" -relief flat -bg LightGreen -command "tabraise help" pack .c.help .c.options .c.data .c.overview -side right -fill x -expand no # # Middle frame: Four frames that is raised by pushing tabs above: # frame .m.fd -background LightGreen place .m.fd -relx 0 -rely 0 -relwidth 1.0 -relheight 1.0 frame .m.fo -background LightGreen place .m.fo -relx 0 -rely 0 -relwidth 1.0 -relheight 1.0 frame .m.hlp -background LightGreen place .m.hlp -relx 0 -rely 0 -relwidth 1.0 -relheight 1.0 frame .m.opt -background LightGreen place .m.opt -relx 0 -rely 0 -relwidth 1.0 -relheight 1.0 # # Help text: # set helpfont [font create -family helvetica -size 14 -weight bold] label .m.hlp.l -bg white -justify left -font $helpfont -text { --- Some help text --- } place .m.hlp.l -x 2c -y 1c -relwidth 1.0 -width -4c -relheight 1.0 -height -2c raise .m.hlp label .d.messages -textvariable bottom_message -relief raised -width 200 -anchor w set bottom_message "BUFR file viewer" pack .d.messages -side left -expand yes wm geometry . 1200x640+50+50