无法解决的Ruby Gtk2错误
我的代码中不断出现“uninitializeglib::Object”错误 代码如下:无法解决的Ruby Gtk2错误,ruby,gtk,gtk2,Ruby,Gtk,Gtk2,我的代码中不断出现“uninitializeglib::Object”错误 代码如下: class MainWindow < Gtk::Window def initialize title = "I'm The Title Of An Application! Yay!" border_width = 10 set_size_request(600, 300) signal_connect("destroy") {
class MainWindow < Gtk::Window
def initialize
title = "I'm The Title Of An Application! Yay!"
border_width = 10
set_size_request(600, 300)
signal_connect("destroy") { Gtk.main_quit }
@vbox = Gtk::VBox.new(false, 10)
add(@vbox)
show_all
end
end
main_window = MainWindow.new
因此,我将这些代码移到类外,如下所示:
main_window = MainWindow.new
main_window.set_size_request(600, 300)
然后我得到:
in `signal_connect': uninitialize GLib::Object
因此,我将其更改为我的类,并将“signal\u connect”方法移到带有“set\u resize\u request”的类之外,如下所示:
main_window = MainWindow.new
main_window.set_size_request(600, 300)
main_window.signal_connect("destroy") { Gtk.main_quit }
它给了我:
in `add': uninitialize GLib::Object
瓜尔!我再次改变它
main_window = MainWindow.new
main_window.set_size_request(600, 300)
main_window.signal_connect("destroy") { Gtk.main_quit }
main_window.add(@vbox)
现在这个
in `show_all': uninitialize GLib::Object
因此,我再次从类中删除该方法,并将其放在类之外
main_window = MainWindow.new
main_window.set_size_request(600, 300)
main_window.signal_connect("destroy") { Gtk.main_quit }
main_window.add(@vbox)
main_window.show_all
也许。。。只是这一次可能会有用,所以我希望一切顺利,然后再次运行代码
in `set_size_request': uninitialize GLib::Object
什么?!这是怎么回事?我认为在初始化阶段,您必须先调用
super
:
def initialize
super
# Other code goes here
# ...
end
也不要忘记添加Gtk.main
:
main_window = MainWindow.new
# Don't forget this...
Gtk.main
除了khell的回答之外,您还应该注意初始化的前两行:
title = "I'm The Title Of An Application! Yay!"
border_width = 10
创建两个从未使用过的局部变量。您可能需要在那里预先添加self.
title = "I'm The Title Of An Application! Yay!"
border_width = 10