Edited at

MacにqtbindingとRuguiをインストールする

More than 5 years have passed since last update.


概要

Mac OS X MavericksでQtをRubyから実行できるqtbindingsをインストールする方法のメモ。

qt4とqtbindingsが動くようになったことで、QtやGTK+アプリテンプレートをRailsライクに生成できるRuguiも動くようになった。

Mac/Win/Linuxで共通で動作するRuby GUI環境にはいくつかあるけれど、Qtbindingsか後述のShoesが有望そう。


前提条件

以下が準備されていること。


  • Mac OS X Maverics (でもMount Lionとかでもたぶん大丈夫)

  • XCode5 (4でもたぶん大丈夫)

  • homebrew

  • rbenv

(Mac Portsやrvmについては未検証)

ネット上の古い情報にいろいろ惑わされてはまってしまったのだけど、実際にはgccは4.2でなくてもいいし、rubyのバージョンは1.9.3でなくても2.0で動いた。


インストール方法


qtbindings

参考:

* https://gist.github.com/reisub/5549359

* http://www.anagix.com/gijutsu-memo/gijutsu-sapoto-1/macosxlionnirbenvderuby193toqtbindings


  • brew install qt

これでQt4 (4.8.5) がインストールされる。Qtは最近5が出てスマホ対応もできたらしいので楽しみ。


  • brew install cmake

最大のポイントは、rubyをrbenv(またはrvm)でオプション付きでインストールすること。



  • RUBY_CONFIGURE_OPTS=--enable-shared rbenv install 2.0.0-p353 --keep

自分は最新のp353にしたけど、1.9あたりまでいけるのではないか。

以下のいずれかを実行して、オプション付きでコンパイルされたrubyが使用できるようにする。

* rbenv global 2.0.0-p353 — グローバルに使用する場合

* echo “2.0.0-p353” > .ruby-version — 現在のディレクトリ以下のみで使用する場合


  • gem install qtbindings

以上でインストールは完了。以下のファイルを作ってruby helloworld.rbを実行してウィンドウが表示されたら成功。


helloworld.rb

#!/usr/bin/env ruby

# -*- coding: utf-8 -*-
$VERBOSE = true; $:.unshift File.dirname($0)

require 'Qt'

a = Qt::Application.new(ARGV)
hello = Qt::PushButton.new('Hello World!', nil)
hello.resize(100, 30)
hello.show()
a.exec()


qt.png

お楽しみ: https://github.com/ryanmelt/qtbindings/tree/master/examples をダウンロードしてruby run_all.rbを実行すればデモがすべて実行される。


rugui

https://github.com/rugui/rugui

ruguiはRubyのGUIアプリをRailsっぽく生成できる。GTK+とQtとrubygamesに対応していて、Qtは結局qtbindings経由で呼び出されている。

基本的に https://github.com/rugui/rugui のReadmeのとおりに実行すればruguiは使用できるようになる (rubygameだけはまだ動かせてない)。

Qtbindingsを実行できるようになっていれば、以下の要領でQt4アプリを生成・実行できる(デフォルトはGTK+)。


  • rugui -a qt <アプリ名>

  • cd <アプリ名>

  • bundle install —path bundle/vendor

bundle install—path bundle/vendorを付けているのは、rbenvのgemに余分なものを追加したくないので。これを行った場合はrakeやrailsの前にbundle execを必ず付ける必要がある。

これでbundle exec rake runを実行してウィンドウが表示されれば成功。

rugui.png


おまけ: shoesrb

Shoes (http://shoesrb.com/) というGUIは機能は少ない代りにかなり軽くてよさそう。ただしshoes3 (https://github.com/shoes/shoes) は更新が止まっていて、JRubyベースのshoes4 (https://github.com/shoes/shoes4) はまだ作り中らしい。

Shoesにはスタンドアロンパッケージを作成する機能があるらしいのだけど最近のMac版は生成できなくなっているらしい...残念。