GTK+ で簡単なテキスト入力(Ruby)

Gtk::TextView を使う。

 

require 'bundler/setup'
require 'gtk2'

def text_window
  w = Gtk::Window.new
  w.signal_connect("destroy") {Gtk.main_quit}
  w.set_size_request(300, 200)
  w.title = "TextView"
    
  t = Gtk::TextView.new
  w.add(t)
  
  b = t.buffer
  
  w.show_all
  Gtk.main
  
  b.text
end

p text_window

ウィンドウを消滅させると、テキスト文字列を出力する。

"Ruby GTK+\n\ntext edit"

 

※参考
Gtk::TextView - Ruby-GNOME2 Project Website
Gtk::TextBuffer - Ruby-GNOME2 Project Website

 

ついでにスクロールするテキスト表示ウィンドウ

Gtk::ScrolledWindow と Gtk::TextView を使う。

 

require 'bundler/setup'
require 'gtk2'

def scroll_window(text)
  w = Gtk::Window.new
  w.signal_connect("destroy") {Gtk.main_quit}
  w.set_size_request(500, 200)
  w.title = "Scroll Window"
  
  sw = Gtk::ScrolledWindow.new
  sw.set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC)
  
  t = Gtk::TextView.new
  sw.add(t)
  w.add(sw)
  
  b = t.buffer
  b.insert_at_cursor(text)
  
  w.show_all
  Gtk.main
end

scroll_window(`cat a1.rb`)

これ、表示するだけで書き込み不可にできないのかな。
 

※参考
Gtk::ScrolledWindow - Ruby-GNOME2 Project Website
Rubyで外部コマンドの出力をGtk::TextViewに表示 - 自称スーパーハッカーの適当なプログラミング雑記等