永井@知能.九工大です.

さらに追跡してみました.

>>>>> "N" == NAGAI Hidetoshi <nagai / dumbo.ai.kyutech.ac.jp> writes:
N> 他に,test2.rb が del ボタンの後の add ボタン press で
N> ----------------------------------------------------------
N> test2.rb:48:in `sprintf': failed to convert Gtk::ListItem into Integer (TypeError)
N> ----------------------------------------------------------
N> となることと,

こちらは極めて単純な問題で,
add と remove で同じ i というローカル変数を違う目的で使ってます.
remove で使ってしまっているのが間違いですね.
remove ボタンのシグナル処理の中の for i in tmp_list ... の i を
l などの他の変数に変更すれば問題なしです.

N> test9.rb がボタンを押したとたんに
N> ----------------------------------------------------------
N> test9.rb:95: [BUG] Segmentation fault
N> IOT trap/Abort (core dumped)
N> ----------------------------------------------------------
N> となることとを確認していますが,これはまだ調べてません.

こちらは gtk.c の中の gobj_smethod_added にバグがありました.
1155 行目で
----------------------------------------------------------------
	VALUE data = assoc_new(Qnil, id);
----------------------------------------------------------------
として,この data を gtk_signal_connect_interp に渡してますが,
gtk_signal_connect_interp の中で data の第 3 要素を参照するために
segmentation fault になっていました.
そこでこの行を
----------------------------------------------------------------
	VALUE data = ary_new3(3, Qnil, id, ary_new3(2,self,id));
----------------------------------------------------------------
としてみました.
これで test9 も落ちなくなります.
ただし,gobj_smethod_added で,何を要素として引き渡すべきかが
良くわからなかったので,gobj_smethod_added が受け取ったものを
そのまま渡しちまえ(^_^;てなことをしています.
結果,test9 の def button.clicked(*args) の args には
[<#Gtk::Button: id=0x80de100>, 8601] などというものが渡ります.
( 8601.id2name は "clicked" です.)

というわけで,正式なのをよろしくおねがいします.> まつもとさん

-- 
                                         永井 秀利 (九工大 知能情報)
                                             nagai / ai.kyutech.ac.jp