2011年03月28日

RailsInstallerのrubyにgemで「qtbindings」をインストールする

RailsInstallerのrubyに「qtbindings」をgemでインストールします
※RailsInstallerはデフォルトでインストール済みとします(ruby 1.8.7 (2010-12-23 patchlevel 330) [i386-mingw32])

>cd C:\RailsInstaller
>gem install qtbindings
Successfully installed qtbindings-4.6.3.2-x86-mingw32
1 gem installed
Installing ri documentation for qtbindings-4.6.3.2-x86-mingw32...
Installing RDoc documentation for qtbindings-4.6.3.2-x86-mingw32...
>

動作確認をする為、
require 'Qt4'

app = Qt::Application.new(ARGV)
Qt::TextCodec::setCodecForTr(Qt::TextCodec::codecForName("Shift-JIS"))

hello = Qt::Label.new('Hello World!')
hello.window_title = 'Hello World! QtRuby'
hello.resize(260, 60)
hello.show()

app.exec()

このスクリプトをmain_simple.rbとファイル名をつけて
>ruby -rubygems main_simple.rb
で、実行し問題なし

しかし、
別のスクリプトだと・・・・・、
#main.rb
#!ruby -Ks

require 'Qt4'
require 'mainwindow.rb'

app = Qt::Application.new(ARGV)
Qt::TextCodec::setCodecForTr(Qt::TextCodec::codecForName("Shift-JIS"))

mainWin = MyWidget.new
mainWin.show
app.exec

#mainwindow.rb
#!ruby -Ks
# -*- coding: japanese-cp932 -*-

class MyWidget < Qt::Widget
slots 'onBtnClickMeClicked()'
def initialize
super()
@times=0
init_comp
end
def init_comp
self.setWindowTitle('Hello, World!')
self.resize(200, 300) #w, h
self.setGeometry(300, 300, 250, 150) #x, y, w, h
self.setToolTip("Simple Widget")
vlay=Qt::VBoxLayout.new
#Add a lbl..
@lbltext=Qt::Label.new("empty")
vlay.addWidget(@lbltext)
setLayout(vlay)
end

end

このスクリプトを実行すると
>ruby -rubygems main.rb
./mainwindow.rb:12: [BUG] Segmentation fault
ruby 1.8.7 (2010-12-23 patchlevel 330) [i386-mingw32]
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
>
とエラーとなった

対策:
README.txtに
Windows - Note: Only necessary for debugging (binary gem available)
1. mingw from the Qt SDK in your path: ie C:\Qt\2010.04\mingw\bin
と、書いてあったので

qt-sdk-win-opensource-2010.04.exe

をダウンロードし、インストール(デフォルトで。)したところ、エラーが解消された



qt-sdk-win-opensource-2010.04.exeでインストールしたファイル(フォルダ)の中で
C:\Qt\2010.04\bin
C:\Qt\2010.04\qt\plugins
があれば、スクリプトはエラーなく動くようです

環境変数 PATHに"C:\Qt\2010.04\bin"を追加しなくても使えています
逆に、上記のインストール時のデフォルト以外の場所にフォルダを移したりフォルダ名を変更等するとエラーとなった
タグ:QtRuby
posted by sige at 23:50| Comment(0) | QtRuby | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

×

この広告は1年以上新しい記事の投稿がないブログに表示されております。