[QtRuby] QtRubyのインストール

  • GUIとか作ってみたい。
  • C#でもいいけど、Qtとか使ってみたい。
  • Qt勉強しようかな?
  • C++とか絶対に使いたくない。絶対にだ・・・
  • (Rubyとか全く使えないけど、気持ちは) I am a Rubyist.

ってことで、RubyからQtちっくにGUIが作れちゃうQtRubyをインストールする。

これを入れるために、わざわざあんなことこんなことをしてRubyを入れたのだった。

1. インストール

といっても、やることはgemを使ってインストールするだけ。

まずはリモートからQtRubyを探す。

$ gem search -r qtruby


たぶん、こんな感じで見つかる。

*** REMOTE GEMS ***

qtruby4 (2.1.0 mswin32)


見つかったのでインストール。

$ gem install qtruby4

終わり。

といきたいけど、ライブラリ検索パスにQtRubyを追加した方が良いらしいので、環境変数RUBYLIBに[QtRubyインストールフォルダ]/libを追加する。*1
ちなみに、QtRubyのインストール先はデフォルトだと[Rubyインストールフォルダ]/lib/ruby/gems/1.8/gems/辺りのハズ...

とりあえず設定としてはこんな感じ?

$ set RUBYLIB=[Rubyインストールフォルダ]/lib/ruby/gems/1.8/gems/qtruby4-2.1.0-x86-mswin32/lib;%RUBYLIB%

まあ、この辺りはお好みで。

2. 動作確認

最初はHello Worldと相場は決まっている。

HelloWorld.rb
require 'qt4'
app = Qt::Application.new(ARGV)
w = Qt::Label.new("Hello World.")
w.show
app.exec

実行するとこんな感じになる。

f:id:izumisannoid:20121121215920j:plain

ちなみに、上のスクリプトをQt/C++で書くとこうなる。

main.cpp
#include <QtGui/QApplication>
#include <QLabel>
int main(int argc, char** argv)
{
    QApplication app(argc, argv);
    QLabel w("Hello World.");
    w.show();
    return app.exec();
}

こうして比べるとRubyコードの洗礼されたシンプルさとC++コードのクソさ加減が際立つね(ぇ

注意(?)

  • 見てわかる通り、OSは7じゃなくてXP...orz
  • 今回使用したRubyはmswin32版。Ruby1.8.7
  • One-Click Ruby Installer for Windowsを使ってRubyを入れている場合、QtRubyは上手くインストールできないかもしれない(ビルド環境が異なるため?よくわからないけど、自分はインストールに失敗した。)
  • ActiveScriptRubyの場合、Rubyのバージョンによってはインストールできたりできなかったりするかもしれない(このあたりの記事による
  • QtRubyはRuby1.9系には対応していないかもしれない(このあたりの記事による
  • RubyGemsのインストール先をデフォルトではなく変更している場合、QtRubyは上手くインストールできないかもしれない(QtRubyのRakefileに書かれているファイルコピー処理のパス指定が、RubyGemsのインストール先がデフォルトであることを想定したような記述になっているため?とにかく、自分はこれで失敗した。(あんなエラーメッセージだされても初心者には対応できないっての...ブツブツ))

*1:環境変数RUBYLIBにQtRubyを追加しない(追加したくない)場合、コードに「require 'rubygems'」って書いておけば動くと思うよ。たぶんね。