hakeの日記

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

qt

QTKFileDialogをコンパイル

復活したTKmixさんトコでQTKFileDialogのソースが公開されてましたので勉強がてらコンパイルしてみました。コンパイル環境はdev_img-1.6です。 ソースにサンプルが付属してたので、そのままコンパイルしたらmainが無いよというエラー(^^ゞ 以前qtアプリの勉…

アプレットをいじる

ちょっと見ないうちにサムさんトコのclockappletがエラく進化していてビックリしました。そんなわけでソースの勉強です。 とりあえず分かったこと

アプレットなプログラム

サムさんトコでClockAppletの置き換えの話題が出てました。前からアプレットってどうやって作るんだ?と思ってたのでこのくらいの短いプログラムだと非常に勉強になりますね。 ところで自分も試してみたいと思ったのですがclock.hがみつかりません(^^ゞ 自分…

メニューバーからのメソッド呼出

Ruby/Qteの勉強 その42通常はメニューバーに機能を登録する場合はメニューバー(QMenuBar)→プルダウンメニュー(QPopupMenu)→メソッドのようにするが、メニューバーから直接メソッドを呼び出すことも可能。 ザウルスでは通常メニュー作成にはQPEMenuBarを使…

アプリ切替時の処理で悩む

ザウルスでRuby/Qteアプリを書いているのですが一つわからない点が…… 複数アプリを起動していてRubyアプリから他のアプリへ切り替えた場合(あるいはその逆も)のイベントか何かを拾うことができないでしょうかね。 むー

引数付きシグナル

Ruby/Qteの勉強 その41 画面をタップしてその座標をテキストエリアに表示するプログラム。MyWidgetのmousePressEventにてシグナルtappedを発生、それを受けてMyLineEditのdispPosメソッドで座標を表示させる。その際にシグナルの引数として座標を示すクラ…

LOGOをマネる

Ruby/Qteの勉強 その40LOGOというタートル(カーソル)を相対座標で制御して描画する言語をマネる。 http://ja.wikipedia.org/wiki/LOGO といってもプログラム言語そのものを作成したわけではなく、Turtleというクラスを作成して、forward(100)をtt.foward…

QListViewの色 - C++で試す

Ruby/Qteでは現状無理そうなのでC++で試してみたら、あっけなく出来ました……orz。といってもC++でのプログラムはやたらに面倒なので、Ruby/Qteでも動作するようになるといいなぁ。 違う話になるけどこのプログラムでメインのWidget部とQListViewItemを継承し…

QListViewの色

いくつかのブログでザウルスのRuby/QteではQListViewに色がつけられないと書いてあったので自分も挑戦してみる。 C++サンプルをみるとQListViewItemを継承したクラスを作ってpaintCellをオーバーライドしてQColorGroupの色指定を条件により変更すればよいみ…

ウィジェットの配置 - QGridLayout

Ruby/Qteの勉強 その39 昨日のBigDecimalを利用して簡易電卓の作成、一応表示桁数は20桁としてみる。 QGridLayoutの使用方法は、あさあさみっくすさんの公開メモを参考にさせていただきました。 ウィジェット配置用に6×4のグリッドを作成、その内LCD表示用…

関連付けとQCop受信 - ZEditorの場合

サムさんトコにコメントした際に気になったの実験。 以前の実験で関連付けによるアプリ起動の際はQCopメッセージ setDocument(QString) filepathでファイルパスを渡すというのを知ったわけなのですが。QCop受信の手段としてQCopChannelクラスを使用していま…

関連付け起動時のQCopメッセージ(続き)

昨日の疑問を試すべく、実験してみる。goingToSendSetDocument(QString)とsetDocument(QString)を受信したときに時間のかかる処理をさせてみる。本当はRubyやShell Scriptのsleep(n)のような関数を使いたかったのだけれど、C++で相当するのが何かわからなか…

関連付け起動時のQCopメッセージ

下の日記に関連してちょっと疑問に思ったので調べてみた。 使用したのは以前QTアプリの勉強で作ったrcvqcopの修正版、これをアイコン登録して新規拡張子と新規MimeTypeを登録して、その拡張子も持つファイルをファイルタブから起動 goingToSendSetDocument(Q…

QtDesigner

にゃののんさんの日記を拝見してQtアプリのレイアウトに使用するQtDesignerというアプリを知りました。自分のクロスコンパイル環境の/opt/Qtopia/bin/をみると確かにdesignerというファイルが存在します。 起動して使用してみると、いろいろなウィジェットの…

coLinux上でQteエミュレーション

最近のザウルス用のQtアプリの勉強はコンパイル速度や画面の広さといった理由でWindowsPC上に構築したCygwin上のクロスコンパイル環境で行うことが多くなっていました。ところが動作確認の段階でいちいちバイナリをザウルスの移動する作業が面倒なのでエミュ…

C++でQTアプリ(その10) 描画処理

Ruby/Qteの勉強で行ったQPainterを用いた線の描画プログラムを書いてみた。画面下のテキストエリアの関数の定義を書き、Drawボタンを押すと関数の曲線を描きます。 関数の評価の方法がわからない(evalみたいなのはC++にもあるのだろうか)のでslcalcのソー…

C++でQTアプリ(その9) ダイアログの作成

クラスQDialogを使ってダイアログ用サブウィンドウを作成してみる。クラスDlgはQDialogを継承、ボタンAccept、Reject、Closeを配置して各々同名のスロットでウィンドウを閉じるようにしている。またgetStatus関数によってCloseEventの発生を知ることができる…

C++でQTアプリ(その8) QCopメッセージ送信

昨日作成したrcvqcopにメッセージを送信してみる。 ボタンRaiseを押すとメッセージraise()が送信される、ボタンMessageではtest(QString)が引数付きで送られる。いずれもrcvqcopが起動していない場合はメッセージ受信により起動する。 メッセージの送信にはQ…

C++でQTアプリ(その7) QCopメッセージ受信

ザウルスのQTアプリケーションではQCopを使って相互にメッセージのやりとりを行うことができる、その実験。 クラスQCopChannelを用いてQCopチャンネルを設定、QCopメッセージを受信するとシグナルreceivedが発生するので、connectを用いて処理を行うスロット…

C++でQTアプリ(その6) イベント処理

予め用意されているイベントに処理を追加。下のプログラムでは画面をペンでタップすると文字を表示する。 クラスQMultiLineEditを継承して新たにEditというクラスを作成、ここでmousePressEventの処理で“mousePressEvent発生”の文字を挿入するようにしている…

C++でQTアプリ(その5) テキストファイルのアクセス

テキストファイルの読み書きをしてみる。ファイルリードボタンを押すと/home/zaurus/Documents/sjis.txtの内容をテキストエリアebに表示、ファイルライトボタンを押すとテキストエリアの内容を/home/zaurus/Documents/sjis2.txtへ出力する。 アクセスするフ…

C++でQTアプリ(その4) ファイルの選択

ディレクトリを移動してファイルを選択する。下のプログラムではカレントディレクトリの内容をQListViewにリストを表示する。リスト中ディレクトリを選択した場合はディレクトリ移動を行って、その内容をリスト表示。 ディレクトリ関係の処理はQDirクラスを…

C++でQTアプリ(その3) 正規表現

Rubyほどの機能は無いようだけれども、QTでもQRegExpクラスを用いることで正規表現によるパターンマッチングが可能みたい。下のプログラムではRegExp欄に正規表現、String欄に文字列を入力してボタンを押すとマッチした文字列を表示する。 QTの正規表現の詳…

C++でQTアプリ(その2) シグナルの追加

昨日のプログラムにシグナルを追加してみる。 hello.hでシグナルpbPressed()を宣言、シグナルの発生はemitを使うみたい。ボタンを押したら呼ばれるスロットでこのシグナルを発生するようにして、connectで新しいスロットslot_pbPressed()と結合させる。 これ…

C++でQTアプリ(その1) シグナルとスロット

勉強としてdev-img1.6環境でC++を使ってHello Worldよりましなプログラムを書いてみる。とりあえずボタンを押すとテキストエリアに文字を書くプログラム。 QT部分はRuby/Qteの知識で何とかなりそうなんだけど、C++の書き方がよくわからない。 気付いたポイン…

Cygwin上のクロスコンパイル環境

最初にググってみつけた幾つかのサイトを参考にgcc3系のザウルス用クロスコンパイル環境を構築しようと思ったのだけど、どうも上手くいかない。諦めてgcc2.95系の環境を構築。 QtopiaSDK on Cygwinに記述されている内容をそのまま実行。 ファイルの入手先 ht…

ウィジェットに名前をつける

Ruby/Qteの勉強 その38 りなざうテクノウさんの掲示板に話題があったので実験。 個々のウィジェットにはsetName(string)で名前をつけることができる、名前を読むにはnameメソッドを使用する。トップレベルのfocusWidget.nameで現在フォーカスのあるウィジ…

dev_img-1.6を試す(その3)

一昨日の続き squashfsパッケージ内のtmake.confの書き換えができないので必要なファイルを書き換え可能な場所(/hdd3/)にコピーして試してみました。 /mnt/dev/tmake/lib/qws/linux-sharp-g++/以下のファイルを/hdd3/qws/linux-sharp-g++/にコピー(tmake.co…

dev_img-1.6を試す(続き)

昨日の続き クラスQPEApplicationを使用するようにソースを変更したらコンパイルエラーになる件について調べてみたところ、tmakeが生成するMakefileのLIBS行に「-lqpe」の記述が無い為とわかりました。 tmakeする度にMakefileの書き換えを行うのは面倒なんで…

dev_img-1.6を試す

Zaurus育成日記さんのとこで公開されているdev_img-1.6を試してみました。なおこのパッケージもdev-img1.3と同様に/usr/local/inclideが実体ディレクトリとして存在しているとインクルードパスが通らなくなります、Zten改を使用している場合は要注意。 1月…