• ベストアンサー

GUIプログラムを作りたいのですが

どんな方法がいいでしょうか?(もちろん、Rubyを使うことが前提です。Ruby/Tkとか、FxRubyとかいろいろあるみたいですが) ずっと前は、Apolloを使っていたのですが、最近のRubyバージョンには対応していないようですし。 または、Winoleについて詳しく書かれたサイトはないでしょうか? (まずは、ファイル選択部分をGUIにしたいと思っています)

質問者が選んだベストアンサー

  • ベストアンサー
  • siffon9
  • ベストアンサー率64% (136/211)
回答No.1

こんにちは 私は、Visualurubyをruby-1.9.3で使用しています。 ActiveScriptRubyをインストールすると一緒にインストールされます。 仕事で使用する簡易ツールをrubyで作成していて、他の人に使用してもらうときに簡単なGUIをつけてexe化してます。 Windowsのファイル選択ダイアログも簡単に呼べますよ。 欠点としてAPI仕様が特殊?でGUI部分がrubyらしからぬソースになるということと、ドキュメントがしっかりと整備されていないことでしょうか(基本的なGUI部品だけの使用なら問題ないと思いますが) これが気になり以前他のGUIライブラリもいくつか試したことがあるのですが、exe化するとファイルサイズが超巨大になってしまったので諦めました。 以上、ご参考まで。

kihonkana
質問者

お礼

回答ありがとうございます。 試してみます。 (ApolloだとGUIのフォームがDelphiで作れたので、気に入ってたんですけど...)

kihonkana
質問者

補足

メインプログラムを以下のようにしたのですが、「file = 」の行でエラーが出ます。 エラーメッセージは「unterminated string meets end of file」です。 どこが間違っているのでしょうか? frm=VRLocalScreen.newform frm.extend MyForm frm.move 100,100,300,300 frm.create frm.show file = SWin::CommonDialog::openFilename(nil, [["テキスト(*.txt)","*.txt"]], 0x1000, "ファイル選択")

その他の回答 (1)

  • siffon9
  • ベストアンサー率64% (136/211)
回答No.2

こんにちは > unterminated string meets end of file メッセージのとおり、文字列(string)が終結しないままプログラムファイルの最後に達してしまいましたというエラーです。エラーの出たプログラムで、3カ所の文字列前後のダブルクォーテーションの閉じ忘れはありませんか? ちなみに私の環境では、以下のプログラムでファイルダイアログが正常に表示されます。 ----- # coding: Windows-31J require 'vr/vruby' frm=VRLocalScreen.newform #frm.extend MyForm #MyFormを定義してないのでコメントアウトしました frm.move 100,100,300,300 frm.create frm.show file = SWin::CommonDialog::openFilename(nil, [["テキスト(*.txt)","*.txt"]], 0x1000, "ファイル選択") -----

kihonkana
質問者

補足

回答ありがとうございます。 同じ行をほかのプログラムでも使っているのですが、そちらの方は正常に動いています。 いろいろやって file = SWin::CommonDialog::openFilename(nil, [["テキスト(*.txt)","*.txt"]], 0x1000, "File Select") というように変えるとうまくいきました。 (ファイル選択ダイアログのタイトルを「ファイル選択」から「File Select」に変えました) とりあえず、これでプログラムを作ります。

関連するQ&A