Ruby GTK嵌套框

Ruby GTK嵌套框,ruby,gtk,Ruby,Gtk,为了好玩,我决定拿起Ruby,用GTK做一些事情。这对我来说几乎是全新的,但我已经掌握了基本的窍门 目前,我不知道如何正确地将一个盒子嵌套在另一个盒子中。例如,我有一些大致如下的内容: window = Gtk::Window.new main_box = Gtk::HBox.new(false, 2) left_box = Gtk::VBox.new(false, 2) right_box = Gtk::VBox.new(false, 2) main_box.pack_start(left

为了好玩,我决定拿起Ruby,用GTK做一些事情。这对我来说几乎是全新的,但我已经掌握了基本的窍门

目前,我不知道如何正确地将一个盒子嵌套在另一个盒子中。例如,我有一些大致如下的内容:

window = Gtk::Window.new

main_box = Gtk::HBox.new(false, 2)
left_box = Gtk::VBox.new(false, 2)
right_box = Gtk::VBox.new(false, 2)

main_box.pack_start(left_box, true, true, 0)
main_box.pack_start(right_box, true, true, 0)

window.add(main_box)
在我的头顶上,类似的东西应该会创建一个布局,两个垂直的盒子并排排列。我在尝试打包箱子时总是出错

undefined method 'pack_start' for nil:NilClass (no method error)

我在想,也许我不能打包一个没有小部件的空盒子?我需要做些什么来显式地实例化这些框吗?

说到调试,我有一个座右铭<代码>总是一些愚蠢的事情

在这种情况下,它是。在我的实际代码中,我使用了一个名为
main\u partition
的框,这是一个拼写错误的
main\u partition
,我很长一段时间都没有注意到

因此,为了回答我自己的问题,是的,我没有实例化我的盒子,因为我用一个与我创建它时使用的名称稍有不同的名称来调用它。Ruby不会帮你检查的


这个故事的寓意是:始终确保变量名正确,尤其是在不需要检查的语言中。

在调试方面,我有一个座右铭<代码>总是一些愚蠢的事情

在这种情况下,它是。在我的实际代码中,我使用了一个名为
main\u partition
的框,这是一个拼写错误的
main\u partition
,我很长一段时间都没有注意到

因此,为了回答我自己的问题,是的,我没有实例化我的盒子,因为我用一个与我创建它时使用的名称稍有不同的名称来调用它。Ruby不会帮你检查的


这个故事的寓意是:始终确保变量名是正确的,特别是在不适合您的语言中。

您可能希望尝试visualruby,以避免手动编写框。它现在仍处于开发阶段,但我很快就会上传一个新版本。转到:


您可能希望尝试visualruby,以避免手工编写方框代码。它现在仍处于开发阶段,但我很快就会上传一个新版本。转到:


看起来不错。看看有没有人跑。这里看起来不错,我真的弄明白了。这是件愚蠢的事。这是我调试代码的座右铭:“它总是愚蠢的”。我使用了一个名为main_分区的框,并将其称为main_分区。Ruby没有意识到我要做什么,于是创建了一个新的未实例化变量。我花了比我希望的更长的时间才注意到这一点。我会把我自己的问题的答案贴出来,然后在我有能力的时候把它关闭。这句格言经常是对的!:)。。。啊,不同的代码。这是我想到的第一件事,检查你的变量名,我想应该在评论中发表:\…很好,你弄明白了^^看起来不错。看看有没有人跑。这里看起来不错,我真的弄明白了。这是件愚蠢的事。这是我调试代码的座右铭:“它总是愚蠢的”。我使用了一个名为main_分区的框,并将其称为main_分区。Ruby没有意识到我要做什么,于是创建了一个新的未实例化变量。我花了比我希望的更长的时间才注意到这一点。我会把我自己的问题的答案贴出来,然后在我有能力的时候把它关闭。这句格言经常是对的!:)。。。啊,不同的代码。这是我想到的第一件事,检查你的变量名,我想应该在评论中发表:\…很好,你弄明白了^^嘿,谢谢你的链接!我刚才问了这个问题,结果我手工完成了我所需要的,但这肯定是我会一直关注的事情,也许很快就会有时间玩。谢谢。我目前正在与兼容性问题作斗争,所以gem还不能工作。但是我每天都用它,所以效果很好。嘿,谢谢你的链接!我刚才问了这个问题,结果我手工完成了我所需要的,但这肯定是我会一直关注的事情,也许很快就会有时间玩。谢谢。我目前正在与兼容性问题作斗争,所以gem还不能工作。但我每天都用它,所以效果很好。