質問: textviewウィンドウで1文字書かれるごとコールバックしたいです。 シグナルは何にすればいいのですか? どのようにすればいいのでしょうか? ソースかリンクを書いてくれると幸いです。
回答: 用途にもよると思いますが、TextView で表示している TextBuffer のシグナル ではどうでしょうか。 `changed` や `insert_text` があります。 ただ、貼り付け操作や、インプットメソッドの使用などがあるので、「挿入」は一文字ごとに行なわれるとは限りません。 一応コードも書いておきましたが、普通にシグナルハンドラを登録しているだけです。(Genie です。まあ、疑似コードと考えて下さい) ``` // print_text_buffer_signal.gs // valac --pkg gtk+-3.0 print_text_buffer_signal.gs uses Gtk init Intl.setlocale(LocaleCategory.ALL, "") Gtk.init(ref args) // ウィンドウ var win = new Gtk.Window() win.set_title("TextBuffer のシグナルのテスト") win.destroy.connect(Gtk.main_quit) // バッファ var buf = new Gtk.TextBuffer(null) buf.set_text("今日は、世界!\n") buf.changed.connect(changed_hdl) buf.insert_text.connect(insert_text_hdl) // ビュー var view = new Gtk.TextView.with_buffer(buf) win.add(view) win.show_all() Gtk.main() def changed_hdl() print "変更されました" def insert_text_hdl(ref pos:TextIter, new_text:string, new_text_length:int) print @"挿入されました: $new_text" ```