このミラーなページについて
- 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 内へのリンクはグレー&アンダーライン表示のみに置き換えています
- ほかのリンクについてはまったくチェックしてませんので、リンク切れがあるかも。原典そのままです。
- 配布ファイルへのリンクは ASAHI-NET のホームページスペースにあるため、2007/04 時点では有効なようです。
以下の文章はひだか氏のサイトにあったもののコピーです。ただ、ひだか氏のサイトもここも WIKI なので、誰でも書き換え可能であり、正確かどうかの保証はしません。
[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 をリリースしました。
- 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)