我正在尝试使用 Glade 3 (gtk) 和 ruby 制作 gui,但无法弄清楚如何使用字符串列表动态填充组合框。在我在 Glade 中直观地制作我的 gui 后,我得到了 xml .glade 文件,并使用 ruby-glade-create-template 生成我的 .rb 文件,但不知道从这里去哪里。我找不到任何关于如何在 Glade 3 中使用 ruby 的指南,我们将不胜感激。谢谢!
问问题
2552 次
3 回答
0
为什么需要生成 .rb 文件?代码生成是皱眉™。那么您是否使用Gtk::Builder实例加载 glade 文件?一旦有了 Builder 对象,您就可以调用get_object方法来获取特定的小部件。
这是一个关于glade 3的非常好的教程,它不包括 ruby,但 python 已经足够接近了。它有点过时了,所以如果您使用的是最新版本的 glade 3,这里提到的一些错误已经得到修复。
于 2009-08-01T03:31:52.327 回答
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
这是一些初始化组合框的示例代码,我用它来填充脚本名称。
于 2009-09-07T00:32:41.497 回答
0
如果你使用了 visualruby,你可以像这样创建一个组合框:
combo = VR::SimpleComboBoxEntry("Selected", "Option1", "option2", "Option3")
@builder["vbox1"].add(combo)
出于某种原因,Glade 不适用于简单的组合框。当您选择简单文本类型时,它不会正确保存在 xml 文件中。因此,您需要做的是将一个带有 1 个单元格的 VBox 或 HBox 放入您希望组合框所在的空地表单中,并将上述框添加到 VBox 中。在上面的例子中,@builder 是 Gtk::Builder 的一个实例。
更多示例请参见:
于 2012-03-25T05:53:02.063 回答