GTK+ でカラーパレットを作る(Ruby)

20180305002252
いつも色がうまく選べないので、自分用に GTK+ を使って色を試すことのできるコマンドを作ってみました。Gem 'thor', 'gtk2' が必要です。

コード。
color_p

require 'thor'
require 'gtk2'

class MyWindow < Gtk::Window
  def initialize
    super("color palette")
    set_default_size(250, 250)
    set_resizable(false)
    
    colorsel = Gtk::ColorSelection.new
    entry  = Gtk::Entry.new
    
    vbox = Gtk::VBox.new
    add(vbox)
    vbox.pack_start(colorsel, false, true, 0)
    vbox.pack_start(entry, true, true, 0)
    colorsel.current_color = Gdk::Color.new(0, 0, 0)
    
    # カラーパレット変更時
    colorsel.signal_connect("color-changed") do |w|
      c = w.current_color
      t = "(#{c.red.to_s(16)}, #{c.green.to_s(16)}, #{c.blue.to_s(16)})"
      entry.set_text(t)
    end
    
    signal_connect("destroy") {Gtk.main_quit}
    show_all
  end
end

class ColorPalette < Thor
  default_command :select
  desc 'select', 'Run color palette.'
  def select
    w = MyWindow.new
    Gtk.main
  end
end

ColorPalette.start

 
下のサイトを参考にさせて頂きました。ありがとうございます。
Ruby Entry markup: いち雑記