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.newstyle.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 stylebutton = Gtk::Button.new('Hello World')Gtk::Widget.pop_style