我使用ruby和glade2在新版本的glade3中设计用户界面一段时间我可以使用gtkbuilder格式生成xml文件而不是libglade.
有什么例子吗?我搜索谷歌,但我没有运气!
小智 6
它非常简单:只需使用Glade创建GUI(并将其保存为GtkBuilder),然后在ruby中使用它:
require 'rubygems'
require 'gtk2'
# require 'libglade2' #you don't need this anymore
builder = Gtk::Builder.new
builder.add_from_file(file)
builder.connect_signals {|handler| method(handler) }
Run Code Online (Sandbox Code Playgroud)
第一行创建Builder对象,该对象负责Glib::Objects从您的xml定义创建并存储它们以供以后使用(您可以调用get_object(objname)构建器,它将返回定义的小部件objname).
第二行实际上加载了您的接口定义,其中file是gtkbuilder文件的路径.
第三行有点模糊.connect_signals为您在界面中定义的每个信号调用一次提供的块.handler只是一个字符串(信号的名称).你应该call从块中返回一个proc(或任何可以调用的东西):每次handler触发定义的信号时都会调用该块.在该示例中,块仅返回与信号具有相同名称的方法(并且为了简单起见,假设存在针对接口中定义的每个信号的方法).