如何使用Ruby/Glade 3填充组合框
我正试图用Glade3(gtk)和ruby制作一个gui,但我不知道如何用字符串列表动态填充组合框。在glade中可视化生成gui后,我得到了xml.glade文件,并使用ruby glade创建模板生成了.rb文件,但不知道从这里可以到哪里去。我找不到任何关于如何在Glade3中使用ruby的指南,如果有任何帮助,我将不胜感激。谢谢 为什么需要生成.rb文件?不赞成代码生成™. 那么,您是否使用实例加载glade文件?一旦有了Builder对象,就可以调用该方法来获取特定的小部件 这是一个关于ruby的非常好的教程,它不涉及ruby,但python已经足够接近了。它有点过时了,所以如果您使用的是最新版本的glade 3,那么上面提到的一些bug已经修复。如何使用Ruby/Glade 3填充组合框,ruby,combobox,glade,Ruby,Combobox,Glade,我正试图用Glade3(gtk)和ruby制作一个gui,但我不知道如何用字符串列表动态填充组合框。在glade中可视化生成gui后,我得到了xml.glade文件,并使用ruby glade创建模板生成了.rb文件,但不知道从这里可以到哪里去。我找不到任何关于如何在Glade3中使用ruby的指南,如果有任何帮助,我将不胜感激。谢谢 为什么需要生成.rb文件?不赞成代码生成™. 那么,您是否使用实例加载glade文件?一旦有了Builder对象,就可以调用该方法来获取特定的小部件 这是一个关
def initialize\u combobox\u script\u select()
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
#从glade文件获取combobox小部件
@combobox_script_select=@glade.get_小部件(“combobox_script_select”)
@combobox_script_select.set_active(0)#这将使combobox中的默认元素处于活动状态
@脚本列表=[“helloworld”、“byeworld”]
@脚本列表。每个{脚本}@combobox_script_select.append_text(“{script}”)}用脚本列表填充组合框
终止
这是一些初始化组合框的示例代码,我用脚本名填充组合框。如果使用visualruby,可以创建如下组合框:
combo = VR::SimpleComboBoxEntry("Selected", "Option1", "option2", "Option3")
@builder["vbox1"].add(combo)
出于某种原因,Glade不适用于简单的组合框。选择简单文本类型时,它不会正确保存在xml文件中。因此,您需要做的是将一个VBox或带有1个单元格的HBox放入您希望组合框的glade表单中,并将上面的框添加到VBox中。在上面的示例中,@builder是Gtk::builder的一个实例
以下是更多的例子: