From: Mitsuo I. <mi...@ru...> - 2003-06-15 15:07:38
|
mitsu5 です。 初歩もいいところなのですが、 Gtk::Window_TOPLEVEL が変です。 Ruby-GNOME2 Tutorial Chapter 3. Getting Started に出てくる、最初のコード # "hajime.rb" require 'gtk2' Gtk.init window = Gtk::Window.new(Gtk::Window:TOPLEVEL) window.show Gtk.main これを動かしますと、 hajime.rb:3: warning: parenthesize argument(s) for future version hajime.rb:3: undefined method `Window' for Gtk:Module (NoMethodError) このような error message が出ます。 Ruby/Gtk の時は Gtk::Window_TOPLEVE (under bar)だったので、その ように変更しますと、 hajime.rb:3: uninitialized constant Window_TOPLEVEL at Gtk (NameError) このように云われます。括弧の中をなくせば動きます。 Gtk::Window_TOPLEVE はマクロではないかと思いますが、 Ruby-GNOME2 Tutorial に書いてあるのだからマクロがなくなったとも 思えないし、そうすると今のインストーラでは抜け落ちているのでしょ うか。 それともこのような表記はなくなったのでしょうか。 Ruby/Gtk のコー ドにはどれでもいていましたが、如何になっているのでしょうか。 -------========-------- mitsu5 mi...@ru... |
From: <sgs...@ni...> - 2003-06-15 15:20:33
|
たむらです。 On Mon, 16 Jun 2003 00:07:10 +0900 Mitsuo Igarashi <mi...@ru...> wrote: > mitsu5 です。 > > 初歩もいいところなのですが、 Gtk::Window_TOPLEVEL が変です。 あまり「変です」とか書かない方がいいです。 > Ruby-GNOME2 Tutorial Chapter 3. Getting Started > に出てくる、最初のコード > > # "hajime.rb" > require 'gtk2' > Gtk.init > window = Gtk::Window.new(Gtk::Window:TOPLEVEL) ^^^^^^^^^^^^^^^^^^^^ -> Gtk::Window::TOPLEVEL > window.show > Gtk.main > > これを動かしますと、 > hajime.rb:3: warning: parenthesize argument(s) for future version > hajime.rb:3: undefined method `Window' for Gtk:Module (NoMethodError) > このような error message が出ます。 typo(書き間違い)ですね。 # しかし、`:'は `.' としてメソッドと見なすとは。 > Ruby/Gtk の時は Gtk::Window_TOPLEVE (under bar)だったので、その > ように変更しますと、 > > hajime.rb:3: uninitialized constant Window_TOPLEVEL at Gtk (NameError) > > このように云われます。括弧の中をなくせば動きます。 上のエラーの意味を考えましたか?何故なくすと動いたのだと思いますか? > Gtk::Window_TOPLEVE はマクロではないかと思いますが、 > Ruby-GNOME2 Tutorial に書いてあるのだからマクロがなくなったとも > 思えないし、そうすると今のインストーラでは抜け落ちているのでしょ > うか。 「マクロ」とはどんな意味で使ってますか? Rubyにはマクロと呼ばれる機能はないですよね。 -- たむら (http://www.rubyist.net/~tamura/d/) |
From: Masao M. <mu...@hi...> - 2003-06-15 15:23:26
|
むとうです。 On Mon, 16 Jun 2003 00:07:10 +0900 Mitsuo Igarashi <mi...@ru...> wrote: > mitsu5 です。 > > 初歩もいいところなのですが、 Gtk::Window_TOPLEVEL が変です。 > > Ruby-GNOME2 Tutorial Chapter 3. Getting Started > に出てくる、最初のコード > > # "hajime.rb" > require 'gtk2' > Gtk.init > window = Gtk::Window.new(Gtk::Window:TOPLEVEL) > window.show > Gtk.main > > これを動かしますと、 > hajime.rb:3: warning: parenthesize argument(s) for future version > hajime.rb:3: undefined method `Window' for Gtk:Module (NoMethodError) > このような error message が出ます。 > > Ruby/Gtk の時は Gtk::Window_TOPLEVE (under bar)だったので、その > ように変更しますと、 > > hajime.rb:3: uninitialized constant Window_TOPLEVEL at Gtk (NameError) > > このように云われます。括弧の中をなくせば動きます。 > > Gtk::Window_TOPLEVE はマクロではないかと思いますが、 > Ruby-GNOME2 Tutorial に書いてあるのだからマクロがなくなったとも > 思えないし、そうすると今のインストーラでは抜け落ちているのでしょ > うか。 ってか、Gtk::Window:TOPLEVELはGtk::Window::TOPLEVELの間違いですね。 APIリファレンスは併用されてますか? http://ruby-gnome2.sourceforge.jp/hiki.cgi?Ruby%2FGTK それにしても英語版がお好きのようですね。 もし可能であるならば、 ruby-gnome2-devel-enの方で報告してあげると Joshua(上記チュートリアルの作者)も喜びますよ。 #もちろん英語で、ですが。 私としては、日本語版のチュートリアル方がより「Rubyっぽい」ので おすすめです。 まだ、内容が英語版に比べて少ないのですが、初歩と言うことであれば そちらで始める方が良いんじゃないでしょうか。 -- .:% Masao Mutoh<mu...@hi...> |
From: Junichiro K. <ki...@ki...> - 2003-06-16 13:54:26
|
きたです. >私としては、日本語版のチュートリアル方がより「Rubyっぽい」ので >おすすめです。 >まだ、内容が英語版に比べて少ないのですが、初歩と言うことであれば >そちらで始める方が良いんじゃないでしょうか。 あぁぁ,地味〜なペースですが徐々に内容は増えております. # ようやく英語版の半分くらいまできたかな. ときどき覗いてみて下さい. 間違った記述や typo を発見された方,書き込み権があればビシバシ修正しちゃ って下さい.書き込み権のない方は私までご連絡を. |
From: <sgs...@ni...> - 2003-06-15 15:31:55
|
たむらです。 On Mon, 16 Jun 2003 00:07:10 +0900 Mitsuo Igarashi <mi...@ru...> wrote: > Ruby-GNOME2 Tutorial に書いてあるのだからマクロがなくなったとも > 思えないし、そうすると今のインストーラでは抜け落ちているのでしょ > うか。 > > それともこのような表記はなくなったのでしょうか。 Ruby/Gtk のコー > ドにはどれでもいていましたが、如何になっているのでしょうか。 チュートリアルに関しては、きたさんの日本語版をお勧めします。 存在してないウィジットは別ですが。 それはさておき、GNOMEとGNOME2の関係が判ってられないようなので。 * GNOME2 は GNOME の新しいバージョン * だけど、APIは上位互換ではない。(例えば、Gtk::Window_TOPLEVELが無くなったとか) * 基本的な考え方はほぼ同じ。 * 機能が増え、依存するライブラリも増えた。 って辺りでしょうか。 #ここ、ツッコムところです。まとまれば、Wikiのページに ;-) * 日本GNOMEユーザー会 - 文書 http://www.gnome.gr.jp/docs/index.html * IBM dW GNOME 2に備える http://www-6.ibm.com/jp/developerworks/linux/020315/j_l-gnome1.html 辺りをどうぞ。 -- たむら (http://www.rubyist.net/~tamura/d/) |
From: Masao M. <mu...@hi...> - 2003-06-15 16:09:49
|
むとうです。 On Mon, 16 Jun 2003 00:31:50 +0900 たむらけんいち <sgs...@ni...> wrote: > たむらです。 > > On Mon, 16 Jun 2003 00:07:10 +0900 > Mitsuo Igarashi <mi...@ru...> wrote: > * GNOME2 は GNOME の新しいバージョン > * だけど、APIは上位互換ではない。(例えば、Gtk::Window_TOPLEVELが無くなったとか) > * 基本的な考え方はほぼ同じ。 > * 機能が増え、依存するライブラリも増えた。 > > って辺りでしょうか。 > #ここ、ツッコムところです。まとまれば、Wikiのページに ;-) そうですねぇ。 GNOME2/GNOMEで言うと範囲が広すぎて私も把握し切れていないのですが、 GTK+に絞って言うと、GTK+2はAPI的にはほとんどGTK+の上位互換です。 ただし、一部のウィジェットはGTK_ENABLE_BROKEN, GTK_DISABLE_DEPRECATED の2つの段階でDeprecatedとなっています。 #前者の方がより使うな!という感じです。 それから考え方としてGObjectが導入されたというのも大きな違いですね。 内部的にだいぶ整理されてきました。 --- さて、Ruby-GNOMEとRuby-GNOME2ですが、むしろこちらの非互換性の 方が大きいんです。 実は、Ruby-GNOMEの頃はあまりAPIのレベルで実装のルール[1] が無かった(あるいはあったけど守られていなかった)ため、 例えばアクセッサなどの扱いに統一性の欠ける部分がありました。 Ruby-GNOME2では、まず決めごとを作って、たとえRuby-GNOMEに存在する メソッドであってもその決めごとに合わないモノはバッサバッサ切り捨て て(あるいは変更・移動した)整理しました。 さらに、GTK+の方でDeprecatedになっているクラス・メソッドは実装しない ことにしました。 そんなわけで、Ruby-GNOMEとRuby-GNOME2では非互換性がだいぶあるんです。 Ruby-GNOME2がRuby-GNOME-2.0でないのはその辺が大きいです。 ライブラリ名も gtkではなくgtk2なのはそういうことです。 さて、Gtk::Window::TOPLEVELですが、これはRuby/GTKでは、Gtk::WINDOW_TOPLEVEL (Gtk以外全て大文字)でした。つまり、Gtkという汎用的な部分に定数値が定義 されていました。 しかし、Ruby-GNOME2では、なるべく限定した場所に定数を定義するようにしています。 TOPLEVELという定数はGtk::Window(とそのサブクラス)でしか使わないので Gtk::Windowにあった方が自然、という考え方です。 [1] http://ruby-gnome2.sourceforge.jp/hiki.cgi?Naming+and+Conversion+Rules -- .:% Masao Mutoh<mu...@hi...> |
From: Mitsuo I. <mi...@ru...> - 2003-06-16 05:47:21
|
mitsu5 です。 皆様の親切な解説のより少しずつ理解が進みました。 >あ、そうそう、Project Websiteですが、英語だけではなく、 >日本語のコンテンツも参考にされると良いと思いますよ。 >ありがちな、英語サイトの翻訳サイト、ではなく、日本語版はそれ自体が >オリジナルですから。 > >私としては、日本語版のチュートリアル方がより「Rubyっぽい」ので >おすすめです。 >まだ、内容が英語版に比べて少ないのですが、初歩と言うことであれば >そちらで始める方が良いんじゃないでしょうか。 本当にそうでした。 http://ruby-gnome2.sourceforge.jp/ja/hiki.cgi ここで front page で Ruby-GNOME2 API Reference は英文、 Ruby-GNOME2 Tips は空で、これは駄目と、 Ruby/GTK2 チュートリアル は覗かずに english の方に行ってしまいました。 まずはこれをしっかり読んで見ます。 また以下のように、 >ってか、Gtk::Window:TOPLEVELはGtk::Window::TOPLEVELの間違いですね。 >APIリファレンスは併用されてますか? >http://ruby-gnome2.sourceforge.jp/hiki.cgi?Ruby%2FGTK > > >それはさておき、GNOMEとGNOME2の関係が判ってられないようなので。 > * GNOME2 は GNOME の新しいバージョン > * だけど、APIは上位互換ではない。(例えば、Gtk::Window_TOPLEVELが無くなったとか> > * 基本的な考え方はほぼ同じ。 > * 機能が増え、依存するライブラリも増えた。 >って辺りでしょうか。 >#ここ、ツッコムところです。まとまれば、Wikiのページに ;-) > * 日本GNOMEユーザー会 - 文書 http://www.gnome.gr.jp/docs/index.html > * IBM dW GNOME 2に備える > http://www-6.ibm.com/jp/developerworks/linux/020315/j_l-gnome1.html >辺りをどうぞ。 > > >しかし、Ruby-GNOME2では、なるべく限定した場所に定数を定義するようにしています。> >TOPLEVELという定数はGtk::Window(とそのサブクラス)でしか使わないので >Gtk::Windowにあった方が自然、という考え方です。 >[1] http://ruby-gnome2.sourceforge.jp/hiki.cgi?Naming+and+Conversion+Rules このように沢山の参考文献を教えていただきありがとうございます。 -------========-------- mitsu5 mi...@ru... |
From: Tadashi S. <sh...@ma...> - 2003-06-15 15:40:26
|
斎藤と申します。あんまり関係ない蛇足をいくつか。 > > # "hajime.rb" > > require 'gtk2' > > Gtk.init > > window = Gtk::Window.new(Gtk::Window:TOPLEVEL) > ^^^^^^^^^^^^^^^^^^^^ > -> Gtk::Window::TOPLEVEL > > window.show > > Gtk.main > > > > これを動かしますと、 > > hajime.rb:3: warning: parenthesize argument(s) for future version > > hajime.rb:3: undefined method `Window' for Gtk:Module (NoMethodError) > > このような error message が出ます。 > > typo(書き間違い)ですね。 ですね。チュートリアルにミスがあったのはアンラッキーでしたが、 こういう「絶対動くはずなのに動かない」っていう時は 一つ深呼吸をして、落ち着いて一字一句追っていくといいと 思いますよ ;-) > mitsu5 さん > # しかし、`:'は `.' としてメソッドと見なすとは。 おそらくは、「:TOPLEVEL」でSymbolとなって、 Gtk::Window(:TOPLEVEL) と解釈されたから > > hajime.rb:3: warning: parenthesize argument(s) for future version > > hajime.rb:3: undefined method `Window' for Gtk:Module (NoMethodError) となったのだと思います。 --- 斎藤ただし |
From: <sgs...@ni...> - 2003-06-15 16:01:53
|
たむらです。 On Mon, 16 Jun 2003 00:40:32 +0900 "Tadashi Saito" <sh...@ma...> wrote: > > > これを動かしますと、 > > > hajime.rb:3: warning: parenthesize argument(s) for future version > > > hajime.rb:3: undefined method `Window' for Gtk:Module (NoMethodError) > > > このような error message が出ます。 > > > > typo(書き間違い)ですね。 > > ですね。チュートリアルにミスがあったのはアンラッキーでしたが、 > こういう「絶対動くはずなのに動かない」っていう時は > 一つ深呼吸をして、落ち着いて一字一句追っていくといいと > 思いますよ ;-) > mitsu5 さん ていうか、3行めでエラーってのと「undefined method `Window'」で かなり絞りこめられますな。 > > # しかし、`:'は `.' としてメソッドと見なすとは。 > > おそらくは、「:TOPLEVEL」でSymbolとなって、 > Gtk::Window(:TOPLEVEL) > と解釈されたから > > > > hajime.rb:3: warning: parenthesize argument(s) for future version > > > hajime.rb:3: undefined method `Window' for Gtk:Module (NoMethodError) > > となったのだと思います。 なるほど。確かに Symbolを引数と見たわけだ。 #今日はもう寝るぞ〜 -- たむら (http://www.rubyist.net/~tamura/d/) |