Pack option : Layout « Tk « Ruby






Pack option


require "tk"

$top  = { 'side' => 'top', 'padx'=>5, 'pady'=>5 }
$left = { 'side' => 'left', 'padx'=>5, 'pady'=>5 }
$bottom = { 'side' => 'bottom', 'padx'=>5, 'pady'=>5 }

$temp = 74   # Starting temperature...

root = TkRoot.new { title "Thermostat" }

top = TkFrame.new(root) { background "#606060" }
bottom = TkFrame.new(root)

$tlab = TkLabel.new(top) do
  text $temp.to_s
  font "{Arial} 54 {bold}"
  foreground "green"
  background "#606060"
  pack $left
end

TkLabel.new(top) do         # the "degree" symbol
  text "o"
  font "{Arial} 14 {bold}"
  foreground "green"
  background "#606060"
  # Add anchor-north to the hash (make a superscript)
  pack $left.update({ 'anchor' => 'n' })
end

TkButton.new(bottom) do
  text " Up "
  command proc { $tlab.configure("text"=>($temp+=1).to_s) }
  pack $left
end

TkButton.new(bottom) do
  text "Down"
  command proc { $tlab.configure("text"=>($temp-=1).to_s) }
  pack $left
end

top.pack $top
bottom.pack $bottom

Tk.mainloop

 








Related examples in the same category

1.Layout a label
2.Grid layout manager places its child widgets in a table-like arrangement
3.To understand the use of row and column options
4.Place geometry manager