ruby/gtk では、スタイルをあらわすクラスとして Gtk::Style というクラスがあります。 スタイルは、フォント、 フォアグラウンドカラー、バックグラウンドカラーなどの属性を持っています。 なお、Gtk::Style のスーパークラスは Data であり、 Gtk::Object からは派生していません。
以下に、ウィジェットのスタイルを変更して、 ちょっと変った外観のボタンを作る例を示します。
プログラム style.rb:
require 'gtk' window = Gtk::Window.new(Gtk::WINDOW_TOPLEVEL) style = Gtk::Style.new style.set_font Gdk::Font.fontset_load '-adobe-helvetica-bold-r-normal--18-*' style.set_fg(Gtk::STATE_NORMAL, 10000, 50000, 60000) style.set_bg(Gtk::STATE_NORMAL, 65535, 50000, 50000) Gtk::Widget.push_style style button = Gtk::Button.new('Hello World') Gtk::Widget.pop_style window.add button button.show window.show Gtk.main
実行結果
プログラムの説明
style = Gtk::Style.new
style.set_font Gdk::Font.fontset_load '-adobe-helvetica-bold-r-normal--18-*'
style.set_fg(Gtk::STATE_NORMAL, 10000, 50000, 60000)
Gtk::STATE_NORMAL -- ウィジェット標準状態
Gtk::STATE_PRELIGHT -- マウスがウィジェットの上にある状態(押されてはいない)。
Gtk::STATE_ACTIVE -- ウィジェットが押されているかクリックされている状態
Gtk::STATE_INSENSITIVE -- ウィジェットが非活性な状態。
Gtk::STATE_SELECTED -- ウィジェットが選択されている状態。
style.set_bg(Gtk::STATE_NORMAL, 65535, 50000, 50000)
Gtk::Widget.push_style style
button = Gtk::Button.new('Hello World')
Gtk::Widget.pop_style