2012-01-12 5 views
1

楽しく、私はRubyを拾い、GTKでいくつかのことをすることにしました。それはかなり新しく私には新しいですが、私は基本のハングアップを得ました。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) 

を、そのようなことを並べてレイアウトされた二つの垂直ボックスでレイアウトを作成する必要があります。箱を梱包しようとするとエラーが表示され続けます。

ウィジェットが含まれていない空のボックスをパックできないと思っていますか?ボックスを明示的にインスタンス化するために必要なことはありますか?

+0

[this code](http://pastebin.com/nJtRs4Y0)が実行されているかどうかを確認してください。ここでうまくいくようです。 –

+0

私は実際にそれを理解しました。そして、それは何かばかげたものでした。それはコードをデバッグするための私のモットーです:「それはいつも何か愚かです。 main_paritionという名前のボックスを使用してmain_partitionとして呼び出していました。 Rubyは私が何をしようとしているのか分からず、新しいインスタンス化されていない変数を作成しました。私がそれを気付かなければならないと思ったよりもずっと長く私を連れて行きました。私は自分の質問に回答を投稿し、できるときはそれを閉じます。 – KChaloux

+0

そのモットーはかなりよくよくあります! :)...ああ、別の投稿コード。それは私の心に来た最初のものの一つでした、あなたのvar名を確認し、私が推測するコメントに投稿しているはずです:\ ...あなたはそれを理解しました! ^^ –

答えて

0

あなたのボックスを手作業でコードする必要がないように、visualrubyを試してみてください。まだ開発段階ですが、すぐに新しいバージョンをアップロードします。移動先:

http://visualruby.net

+0

ねえ、リンクありがとう!私はその質問をしばらく前に聞いて、私が必要としていたものを手で手に入れることになりましたが、これは間違いなく私が気をつけていて、まもなく遊んでいきます。 – KChaloux

+0

ありがとうございます。私は現時点で互換性の問題と戦っているので、宝石はまだ働いていません。しかし、私は毎日それを使用するので、素晴らしい作品です。 – user1182000

+0

アップデート:WindowsとLinuxでうまくいっている – user1182000

1

私には、デバッグに関するモットーがあります。 It's always something stupid

そしてこの場合はそれでした。私の実際のコードでは、main_paritionという名前のボックスを使用していましたが、それは間違いなく長い時間キャッチしなかったmain_partitionのスペルミスです。

私自身の質問に答えるために、はい、私は私がそれを作成した名前と少し違う名前で呼んでいたので、私のボックスをインスタンス化していませんでした。そしてRubyはそれをあなたのためにチェックしません。

ストーリーへの道徳:特にあなたをチェックしていない言語では、常に変数名が正しいことを確認してください。