Ruby/Qteでもイベントが受けられた
昨日の続きだが、調査の結果、QObjectクラスに追加されているcatchEventメソッドを呼び出すことによって、イベントを受信できるようになることが判明した。
class MyWidget < QWidget def initialize(*args) super(*args) catchEvent : : end def paintEvent(pe) : : end : : end
catchEventメソッドは「/opt/QtPalmtop/lib/ruby/site_ruby/1.8/qte.rb」で定義されており、イベントフィルタをインストールすることによって実現している。
Rubyのメモ帳は、終了時の処理をaboutToQuitシグナルからcloseEventに切り替えた。
download:notepad.py_rb.tar.gz
また、参考にしたRQR(rqr.rb)もアップロードして置く。
download:rqr.rb_0.2.8.tar.gz
RQRの修正点は以下の通り。
- 保存してあるメール、登録してあるアドレスが無いときに、nilアクセスが発生しRQRが突然終了する問題の修正。
- メールの本文、アドレスのメモと番地、テキストに入力フォーカスが存在すると、タブキーでは入力フォーカスを移動することができない問題の修正。