RubyQpeAppletを試す(その2)
RubyQpeAppletが0.4にアップしていたので試してみました。仕様が若干変更になっているので前回のテストスクリプトをそれに合わせて修正。
前回できなかったsystem()によるqcopを用いたアプリの起動、日本語表示(qs()を使用)ができるようになりました。また試した限りではreload時のQtopiaの再起動も発生しまていません。
今回からメソッドtoggle_show_hideのオーバーライドによってタスクバーアイコンのタップ時の処理も記述できるようになっていますね、これは応用の範囲が広がりそうです。下のスクリプトではタップでウィンドウを左右に移動させています(コメントアウトを外す)
このバージョンでかなり実用性が高まったのではないでしょうか。
と、ここで疑問が。RubyQpeAppletを用いて作成した別々のアプリを同時使用することってできるのでしょうか?
class Hello <Qpe::Applet::Base def user_interface setCaption(qs("てすと")) # 日本語はqs()で resize(150, 150) move(490,290) @v = QVBox.new(self) @v.setGeometry(0,0,150,150) @pb1 = QPushButton.new('button1', @v) @pb2 = QPushButton.new('button2', @v) @eb = QMultiLineEdit.new( @v ) connect(@pb1, QSIGNAL('clicked()'), self, 'test1') connect(@pb2, QSIGNAL('clicked()'), self, 'test2') end def test1 begin cmd = "qcop QPE/System 'execute(QString,QString)' zeditor" system( cmd ) rescue log_error($!) end end def test2 begin @eb.insertLine(qs("ボタン")) rescue log_error($!) end end ## タスクバーのアイコンクリック時の処理 ## アプレット表示位置移動 # def toggle_show_hide # begin # self.hide # if pos.x == 0 # move(490,290) # self.raise # self.show # else # move(0,290) # self.raise # self.show # end # rescue # log_error($!) # end # end end