[QtRuby] QtRuby入門(コネクト)

Qtとか勉強しようかな?と思いたってとりあえず購入したこの本。

入門 Qt 4 プログラミング

買っただけで満足して、全く開かずに放置して1年以上
そろそろまじめに読んでみてもいいんじゃないだろうか・・・

シグナルとスロットの接続

コネクトに関してこの本で取り上げられていた最初のサンプルが

『ボタンを押したら終了するアプリケーション』

だったので、これをそのままQtRubyで書いてみる。

完成品

f:id:izumisannoid:20121124000059j:plain

sampleconnect.rb
require 'qt4'
app = Qt::Application.new(ARGV)
button = Qt::PushButton.new("Quit")
Qt::Object.connect(button,SIGNAL('clicked()'),app,SLOT('quit()'))
button.show
app.exec

ちょこっと調べた結果、SIGNALとSLOTを文字列で指定すれば良く、あとはQtと同じように書いていい。
「clicked()」を「clicked」と、括弧を省略すると上手く動かなかったので注意点はそこくらい?

ちなみに、次のようにSIGNALとSLOTをシンボルで指定しても上手く動くみたい。

sampleconnect2.rb
require 'qt4'
app = Qt::Application.new(ARGV)
button = Qt::PushButton.new("Quit")
Qt::Object.connect(button,SIGNAL(:clicked),app,SLOT(:quit))
button.show
app.exec

こっちの方がRubyっぽい?