hakeの日記

Windows環境でプログラミングの勉強をしています。

RubyQpeAppletを試す

とりあえずバージョン0.2が公開されてたので、そっちをインストール。スクリプト変更時の再読み込み用のQCopメッセージが追加されたのでそれをKeyHelperのメニューに登録。むむっ、ごく稀にreloadするとQtopiaだけ再起動する場合があります。

qtedecl.rbの書き方がイマイチわからないので通常の文法で書いてみます。適当にボタンを並べて押すとZEditorの起動と、テキストボックスに文字表示させるプログラム。Windowのサイズと位置はresizeとmoveで何とかなりそうみたい。
実際に動かしてみるとsystem()でQCopを使用したZEditorの起動は上手くいきませんでした、10秒ほど固まった後に何も起こらずに復帰します。あと日本語を使おうとするとフォントが化けるなぁ、これはqpeapplet.rbを細工すればいいのかな?


http://noir.s7.xrea.com/rubyqte/?RubyQpeApplet


全然話は違うけれども、QMultiLineEdit::insertLineがtr()で文字列を囲まないと動かなくなった、以前はtr()が無くても表示してくれたと思ったのだけど、気のせい?

class HelloForm <Qpe::Applet::MainFormBase
  def user_interface
#   setDefaultCodec(QTextCodec.codecForName("utf8"))
#   setFont(QFont.new("lcfont",16))

    setCaption(tr("test"))
    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
    cmd = "qcop QPE/System 'execute(QString,QString)' zeditor"
    system( cmd )
  end
  def test2
    @eb.insertLine(tr("push Pb2"))
  end
end