泉田と申します。

先日は不適切な質問をしてしまい、すみませんでした。
私なりに問題点を整理しましたので
改めて質問させてください。

Treeオブジェクトのサブツリーのitemの初期化をしたいのですが、
うまく行きません。
一度removeしてから、再びappendをしようとすると、
	in `append': destroyed GtkObject (ArgumentError)
と怒られてしまいます。(;_;)

ソースは以下の通りなのですが、#長くてすみません。
問題を解決するよい方法はありますでしょうか?
#ちなみに、以下のTestTreeをルートツリーにした場合、
  itemの初期化はうまくいきました。

それではよろしくお願いします。

----
require 'gtk'

class TestTree < Gtk::Tree
  def initialize
    super
    new_item("sub")
  end
  def remove_item
    foreach{|item|
      remove item
    }
  end
  def new_item(label)
    item = Gtk::TreeItem.new(label)
    item.show
    append item
  end
end

#main
window = Gtk::Window.new(Gtk::WINDOW_TOPLEVEL)
vbox = Gtk::VBox.new(false, 0)

roottree = Gtk::Tree.new
item = Gtk::TreeItem.new("root")
item.show
roottree.append item
tree = TestTree.new
tree.show
item.set_subtree tree

vbox.pack_end roottree, false, false, 0
button = Gtk::Button.new("NEW")
button.signal_connect("clicked"){
  tree.remove_item
  tree.new_item("subsub")   <--ここでエラーが出ます
}
vbox.pack_start button, false, false, 0
window.add vbox
vbox.show
roottree.show
button.show
window.show

Gtk.main
----

--
泉田  真季(izumida / wni.co.jp)