Top > Ruby > Qte > Mirror(200703)

このミラーなページについて

  • Ruby/Qte 本家のひだか氏の RWiki がダウンしており、内容消失のリスクがあるため、あさあさが自分の判断で 2007/04/28 時点の Google キャッシュを元に Ruby/Qte 公式サイトミラーしたものです(つまり、ここは公式ではないです)。公式サイトが復活したら消すかも。また、作者であるひだか氏から連絡があったなど、問題があればすぐ消去させていただきます。
    • おそらく、2007/03 頃以前の「ダウン直前までの最新」な内容と思われます。
      • ミラー元の Google キャッシュでは「last-modified: Fri, 16 Jun 2006 04:10:30 JST (213d)」と WIKI 最終更新日が表示されてました。
    • CSSまではミラーしてないので、デザインが PukiWiki Plus! 準拠になってます。気にするべからず。
      • Ruby のソース色分けまではやっていません、原典そのまま。(Ruby/Qte/Hello, world! で紹介しているから、というのもありますが)
      • 文章などは原典のままですが、WIKI記法は PukiWiki 向けの最小限の手直ししてます。(Ruby/Qte の表記部分が全部リンクされてるのは原典でも手直しでもなく、ここの WIKI に Ruby/Qte というページそのものがあって自動的にリンクが貼られてしまうためで、オリジナルにはそのリンクは存在していません)
    • 英語版などのほかのページははミラーしていません。よって、公式 RWiki 内へのリンクはグレー&アンダーライン表示のみに置き換えています (T-T
      • ほかのリンクについてはまったくチェックしてませんので、リンク切れがあるかも。原典そのままです。
      • 配布ファイルへのリンクは ASAHI-NET のホームページスペースにあるため、2007/04 時点では有効なようです。

以下の文章はひだか氏のサイトにあったもののコピーです。ただ、ひだか氏のサイトもここも WIKI なので、誰でも書き換え可能であり、正確かどうかの保証はしません。


Ruby/Qte

[english]

Ruby/Qte は Qt/Embedded を Ruby から使うための拡張ライブラリです。 SHARP SL-A300/SL-C700 上で開発していますが、SL-5000系ZaurusやiPAQ Linux でも動くかもしれません*1

Ruby/Qte はまだまだ開発中ですので、バグレポート・パッチなどお待ちしております。

入手

バイナリインストール

Ruby本体は<URL:http://sourceforge.jp/projects/zaurus-ja/files/>こっちから入手してください。ruby-1.8 系に対応しています。

Rubyのインストール後、普通にインストールすればよいはずです。SDカードへのインストールも問題なくできます。

ソースのコンパイル

バイナリインストールしたひとはここの節は飛ばしてください。

ソースからコンパイルしたい場合には、いまのところ、Ruby 自身のソースをコンパイルした環境(具体的にはfake.rb/rbconfig.rb)が必要です。

$ export QTDIR=/opt/Qtopia/sharp
$ export RUBYOPT='-r~/SLZaurus/Ruby/ruby-1.8.1/fake.rb -I/home/hidaka/SLZaurus/Ruby/DEST-shared/opt/QtPalmtop/lib/ruby/1.8/arm-linux'
$ export CXX=arm-linux-g++
$ ruby setup.rb config --ruby-prog=/usr/local/bin/ruby -- --with-qte-dir=/opt/Qtopia/sharp
$ ruby setup.rb setup
$ ruby setup.rb install

てな感じ。とはいってももう少し変数設定は削れるかも。追試してくれるひと希望^^;この手順で、-I で指定した rbconfig.rb に従ったインストール先のsite_rubyに入ります。

クラスを追加したり修正したりといったことを行うためには、さらに SWIG-1.3.17 が必要です。この作業についてはRuby/Qteメモあたりを参照してください。本当にメモなのでいずれちゃんと書きますが。

  • ソースをコンパイルしてみました。ちょっとつまづいた点としては、 /opt/Qtopia/include/qconfig.h の #define QT_NO_CODECS をコメントアウトしなければならないのと、libruby-static.a を見つけられるように各ディレクトリのextconf.rb に $LDFLAGS += '-L$(クロスコンパイルしたrubyのDESTDIR)/opt/QtPalmtop/lib ' を加える必要がありました。また、$CFLAGS も、tmake.conf を参考に、-DQT_QWS_EBX -DQT_QWS_CUSTOM -fno-exceptions も加えています。 -- noir

サンプル

A Way Outさまでスクリーンショットを公開して頂いています。

#!/usr/bin/env ruby -Ku
require 'qte'
require 'qpe'

include Qte
include Qpe

a = QPEApplication.new([$0]+ARGV)

hello = QPushButton.new( QString::fromUtf8("こんにちは♪") )
a.showMainWidget(hello)
a.exec

こんな感じで(この場合はUTF-8で保存してください)日本語を含んだGUIも作れます。

ドキュメント

Ruby/Qte自体のまとまったドキュメントはまだ書いていませんが、 Ruby/Qt2 と Qtopia のドキュメントを見ればほぼ使えます。

  • 2003-3-18 エンターブレイン社のムック LinuxPower に記事が掲載されました
  • 2003-3-24 技術評論社 MobilePress 2003年春号に記事が掲載されました。
  • 2003-8-31 masaya さんによる入門ページ Ruby/Qteプログラミング がはじまりました。
  • 2003-9-8 noirさん(黒崎さん)によってWikiサイト Ruby/Qte普及委員会 が開設されました。

アプリケーション

なにか作ったらお知らせください。ここからリンクします。

  • EBt おかだ様によるハイパーリンクメモアプリです。
  • ComicReader萬ちゃん LEO 様による漫画用画像ビューアです。
  • rgoban 囲碁の棋譜データである SGF データのプレイヤです。あさだ様 作。
  • zfc 関数電卓です。shinichiro.h 様 作。
  • thisweek SL-A300(たぶんSL-5500もOk)用の today です。C700/B500 標準スケジューラではデータ形式が違うので使えません。datebook2 を使っている人ならOKかな? これも黒崎様。いつも感謝です。
  • ipkginfo インストールされているipkgの情報を表示するためのツールです。 メインメモリ/SD のどっちにいれたかわからなくなったりするひと(ぼくですが)に 便利。(黒崎様 作)
  • rqgrep 黒崎様作成のGUIつきgrepです。A300用ということですがC700でもちゃんと動きます。
  • CronInet 定期的なメールの送受信などを支援します。さきら様 作
  • MaidMail さきら様 作のメーラです。

制限

  • QDom 関係がないため、rbuic/ui2rb はありません。その他、Qt/Embedded に存在しない クラスについては当然扱えません。
  • 現状では Ruby/Qt2 をそのまま持ってきているので、逆に Qt/X11 に存在しない クラスについても扱えません。実は作者はなにが必要なのかまだわかっていないので リクエストすれば増える可能性はあります。

リリース情報

  • 2006-6-16 ruby-qte-devel-0.5.4 をリリースしました。
    • SWIG-1.3.25 のバグを踏んでいたようで、オーバーロードされたメソッドを呼び出す 際に No matching function for overloaded '...' の エラーが発生する場合があったのを修正しました。
  • 2006-4-10 ruby-qte-devel-0.5.3 をリリースしました。
    • QScrollView を継承したクラスで viewportResizeEvent()をオーバーライドした場合に 渡される引数が QPaintEvent クラスのものになっていたのを、QResizeEvent のものに修正しました(松井様よりご指摘いただきました)
    • 内部的な話ですが SWIG-1.3.25 にアップデートしたためにあちこち変更されています。手元ではEBtは正常動作していると思われますが、何かおかしいことがあったらご連絡ください。
  • 2005-1-16 ruby-qte-devel-0.5.2 をリリースしました。
    • MimeType クラスを追加しました
  • 2003-9-17 ruby-qte-devel-0.5.1 をリリースしました。
    • QGridLayout::new が定義されなくなってしまっていたのを修正しました
    • qte.rb で正規表現の warning が出ていたのを修正しました
    • いずれもnoirさんによる指摘を頂きました。ありがとうございます。
  • 2003-9-15 ruby-qte-devel-0.5 をリリースしました。
    • QTextCodec のサブクラスはサポートしないようになりました。 QEucJpCodec などのクラスは直接扱えないので QTextCodec::codecForName などを 利用して取得してください。
    • ruby-1.8 ベースで確認、リリースすることにしました。ソースからコンパイルすれば ruby-1.6 ベースのものもまだ作れるはずですが、このサイトでは今後 ruby-1.6 ベースの パッケージをリリースする予定はありません。
  • 2003-1-24 ruby-qte-devel-0.4.2.tar.gz を再パッケージしました
    • いくつか cvs add しわすれていたソースがありました。ご迷惑をおかけしました。
    • バイナリには変更ありません。
  • 2003-1-13 ruby-qte_0.4 をリリースしました。
    • RubyのThread/シグナル(Ctrl-Cなど)に対応しました
    • Qtopia の QPEMenuBar, QPEToolBar, Config, AppLnk, DocLnk の 各クラスに対応しました
    • いくつかのtypoを修正しました
  • 2002-12-30 ruby-qte_0.3.1 をリリースしました。ソースの変更はありません。
    • --disable-shared / --enable-shared どちらのRubyでも動くように なりました(と思います)。
  • 2002-12-30 ruby-qte_0.3 をリリースしました。
    • Qtesound を動くように修正しました。サンプルも直したので0.3.1として リリースしました(わかりにくくてすみませぬ)
    • QCopEnvelope をサポートしました
    • ipk 作成スクリプトをつけました
  • 2002-12-28 SWIG-1.3.17 に移行しました
  • 2002-12-26 ruby-qte-examples-0.3 examples/tutorials のみ独立して パッケージして先行配布
  • 2002-12-23 サンプルなどはチェックしました。CVS にコミットしてあります。
  • QPEApplicationをサポートしました。
  • タスクバーに表示されない、というのは事実誤認だったようです。 ですが単にスクリプトだけではだめなので .desktop ファイルがいるのだと 思います(まだ追試していない)。 ウィンドウが行方不明なときは、ProcessManager などで殺してください。
  • 2002-10-23 ruby-qte-0.2 QPEApplication 追加
  • 2002-10-18 ruby-qte-0.1 初リリース

todo

  • libqpe
    QPEApplication, QCopEnvelope だけはサポートしましたが。その他のクラスも。
  • Qt/Embedded 特有のクラス類のサポート
    噂の(?) QCop系 など。
  • QCopEnvelope ラッパー
    • もうすこし使いやすく・・C++ でラッパーを書いてSWIGでラップすることになる?
    • QRCopEnvelope.new して、<< でパラメータを設定して、QRCopEnvelope#send で 送る、とかにする予定。
  • source cleanup
    • example 関係は Ruby らしく書く
    • SWIG 的に綺麗に書き直す
  • virtual method overload
    C++ の virtual メソッドのオーバーロードができません。これは結構リライトが必要そうなので時間かかるかも。
    よくみたら(^_^; event handler だけは対応してありますね。堀江様の努力に感謝。

謝辞

  • Ruby/Qte は、堀江様の Ruby/Qt2 をQt/Embedded ベースに移植したものです。 ほとんどのコードは Ruby/Qt2 から流用されています。
  • Ruby/Qte(もちろんRuby/Qt2も)はSWIGを利用して 開発しています。

URL: http://takahr.dhis.portside.net/cgi-bin/rwiki.cgi?cmd=view;name=Ruby/Qte
last-modified: Fri, 16 Jun 2006 04:10:30 JST (213d)



*1 QCodecまわりが問題かも知れません

リロード   新規 下位ページ作成 編集 凍結 差分 添付 コピー 名前変更   ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
Last-modified: Fri, 22 Jul 2011 21:57:54 JST (1525d)