From: Masahiro SATO Date: 2000-11-04T10:35:33+09:00 Subject: [ruby-list:25799] TkComm::tk_tcl2ruby deletes spaces of string さとうといいます tk.rb の TkLabel で, text メソッドを使って表示する文字列を 指定したのち, 再び text メソッドを使ってその文字列を得ようと すると, 空白文字がなくなってしまいます. 次のようなスクリプトで 再現します. ====ここから==== #!/usr/local/bin/ruby require "tk" TkRoot.new {|r| label = TkLabel.new(r) { text "Good Morning!" # 表示する文字列を指定 pack } print "#{label.text}\n" # GoodMorning! と表示される } Tk::mainloop ====ここまで==== 原因は, TkObject#cget から呼ばれる TkComm::tk_tcl2ruby で if val.include? ?\s return val.split.collect{|v| tk_tcl2ruby(v)} end が "Good Morning!" を "Good" と "Morning!" に分割してしまうため だと思います. これは, どのように対処すべきでしょうか? text の代わりに textvariable (と TkVariable) を使うと, 当然 ながらうまくいきますが… -- さとうまさひろ / 佐藤正博 m@sa.to or masahiro-sato@mbj.sphere.ne.jp