如何使用/填充Ruby / Glade 3的组合框

时间:2009-07-28 14:51:51

标签: ruby combobox glade

我正在尝试使用Glade 3(gtk)和ruby创建一个gui但是无法弄清楚如何使用一个字符串列表动态填充一个组合框。我在Glade中直观地制作了我的gui后得到了xml .glade文件,并使用ruby-glade-create-template生成我的.rb文件,但不知道从哪里开始。我找不到任何关于如何使用Glade 3的红宝石的指南,任何帮助将不胜感激。谢谢!

3 个答案:

答案 0 :(得分:0)

为什么需要生成.rb文件?代码生成是Frowned Upon™。 那么你用Gtk::Builder实例加载glade文件吗?获得Builder对象后,可以调用get_object方法获取特定的小部件。

这是一个关于glade 3的非常好的教程,它不包括ruby但python足够接近。它有点过时,所以如果你使用的是最近版本的glade 3,那么已经修复了一些错误。

答案 1 :(得分:0)

def initialize_combobox_script_select()
    #get combobox widget from glade file
    @combobox_script_select = @glade.get_widget("combobox_script_select")
    @combobox_script_select.set_active(0) #this makes <select a script> the default element in the combobox
    @script_list = ["helloworld", "byeworld"]
    @script_list.each{|script| @combobox_script_select.append_text("#{script}")} #populate the combobox with the list of scripts
end

这是一个用于初始化组合框的示例代码,我曾用它来填充脚本名称。

答案 2 :(得分:0)

如果你使用了visualruby,你可以像这样创建一个组合框:

combo = VR::SimpleComboBoxEntry("Selected", "Option1", "option2", "Option3")
@builder["vbox1"].add(combo)

出于某种原因,Glade并不适用于简单的组合框。选择简单文本类型时,它不会在xml文件中正确保存。所以,你需要做的是将一个带有1个单元格的VBox或HBox放入你想要组合框的地板形式,然后将上面的框添加到VBox中。在上面的例子中,@ build是Gtk :: Builder的一个实例。

还有更多例子:

http://visualruby.net