[QtRuby] QtRuby入門(コネクト)
Qtとか勉強しようかな?と思いたってとりあえず購入したこの本。
買っただけで満足して、全く開かずに放置して1年以上。
そろそろまじめに読んでみてもいいんじゃないだろうか・・・
シグナルとスロットの接続
コネクトに関してこの本で取り上げられていた最初のサンプルが
『ボタンを押したら終了するアプリケーション』
だったので、これをそのままQtRubyで書いてみる。
完成品
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っぽい?