2012-08-01 40 views
2

我希望能夠在程序運行後動態更改ruby-gnome2中筆記本頁面的背景顏色。我只發現設置背景顏色的一種方式:Ruby-Gnome2筆記本顏色

# Some page contents, for the sake of example 
box1 = Gtk::HBox.new(false, 2) 
box1.pack_start(Gtk::Label.new("Page 1")) 
box2 = Gtk::HBox.new(false, 2) 
box2.pack_start(Gtk::Label.new("Page 2")) 

notebook = Gtk::Notebook.new  # Create a notebook object 
notebook.append_page(box1)  # Create a page with box1 as contents 
notebook.append_page(box2)  # Create a page with box2 as contents 
style = notebook.style   # Copy the currently applied style 
style.set_bg(Gtk::STATE_NORMAL, bg.red, bg.green, bg.blue) # Update the bg color 
notebook.style = style   # Set notebook's style to the updated object 

如果之前Gtk.main被踢掉應用於真實這是罰款。但窗口已經啓動後,它不起作用。我已經在筆記本對象和頁面內容上嘗試了modify_bgmodify_base的組合,不起作用。

是否有正確的方法來設置筆記本頁面的顏色,這是不是很蹩腳,可以在主循環運行後應用?

回答

1

你的問題來自5年前,但我會舉例說明我是如何用最新版本的Ruby-GNOME2綁定來完成的。如果沒有你,或許它仍然可以來方便別人:

color = Gdk::Color.parse("#003366") 

button1.signal_connect("clicked") { 
    textview1.override_background_color(Gtk::StateFlags::NORMAL, Gdk::RGBA.new(color.red, color.green, color.blue)) 
} 

Gtk.main 

按鈕能夠事後改變的TextView小部件的顏色主要基於GTK循環已經開始,如果這是你的意思。當然,它也應該與筆記本小工具一起使用。

我不得不說我剛剛開始使用Ruby-GNOME2綁定,我不確定這是目前推薦的修改UI外觀的方式,但它起作用。