我正在尝试使用Glade 3(gtk)和ruby创建一个gui但是无法弄清楚如何使用一个字符串列表动态填充一个组合框。我在Glade中直观地制作了我的gui后得到了xml .glade文件,并使用ruby-glade-create-template生成我的.rb文件,但不知道从哪里开始。我找不到任何关于如何使用Glade 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的一个实例。
还有更多例子: