Ruby-Gnome2笔记本颜色

时间:2012-08-01 02:42:12

标签: ruby gtk2 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的组合,但没有效果。

是否有正确的方法来设置笔记本页面的颜色不是那么hackish,并且可以在主循环运行后应用?

1 个答案:

答案 0 :(得分:2)

您的问题来自5年前,但我将举例说明如何使用最新版本的Ruby-GNOME2绑定。如果不是你,可能它仍然可以派给其他人:

shared_preload_libraries

按钮能够在主Gtk循环开始之后更改textview小部件颜色,如果这意味着你的意思。当然它也应该与笔记本小部件一起使用。

我不得不说我刚刚开始使用Ruby-GNOME2绑定,我不确定这是目前推荐的修改UI外观的方法,但它确实有效。