Ruby 2.3.0 リファレンスマニュアル > ライブラリ一覧 > tk/packライブラリ > TkPackモジュール > propagate

module function TkPack.#propagate

propagate(master, bool=None)[permalink][rdoc]

[TODO]

スレーブのpackが完了した後マスターのウィジェット(master) の大きさが自動的に変更されるかどうかを真偽値boolで指定します。

boolを省略した場合、現在の設定を返します。

デフォルトはtrueで、この場合マスターウィジェットは、ウィジェット が配置されていない空き区画が見えなくなるよう縮んだり、すべてのスレーブ (の割り当てられた区画)のサイズにあわせて大きくなったりします。

((-このメソッドの用途がわからない。マスターのサイズを固定にしたいのな ら、geometry でサイズを指定すればいいんじゃないの?-))

require "tk"

p TkPack.propagate(Tk.root)
TkButton.new { text "foo" }.pack

top = TkToplevel.new
p TkPack.propagate(top)

TkPack.propagate(top, false)
p TkPack.propagate(top)
TkButton.new(top) { text "bar" }.pack

Tk.mainloop

=> true
   true
   false

以下の例では、barが表示されない((-なんで?いつかちゃんと調べること-))

require "tk"

TkFrame.new {
  TkPack.propagate(self, true)
  TkLabel.new(self) { text "foo" }.pack
}.pack

TkFrame.new {
  TkPack.propagate(self, false)
  TkLabel.new(self) { text "bar" }.pack
}.pack

Tk.mainloop