hakeの日記

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

アプレットをいじる

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

Configクラス

設定ファイルの設定値を簡単に読み書きできる。ザウルスだとデフォルトで~/Settingsの下ってことになってるみたいですけど、パスの指定はどこかでできるのかな?
このクラス、Ruby/Qteの勉強の時に存在を知りましたがRubyではメリットを感じなくて使ってませんでしたけどC++だと便利ですね。

Config config( "clockapplet" );    設定ファイル指定
config.setGroup( "Font" );         ファイル内セクション指定、この場合は[Font]
bool var = config.readBoolEntry("Item", var);       ファイル内のItemの値を変数に読み込み、値0:false?
int  var = config.readNumEntry("Item", var);       同上、でも何で変数名を2回書かないといけないの?
QString var  = config.readEntry("Item", var);       同上、二番目の引数はデフォルト値でした。

config.writeEntry("Item", var);                   ファイルに書き込むときは型の違いは気にしない?

ところでConfigクラスのドキュメントって何処にあるのでしょう(^^ゞ

アプレットの順番

clockappletimpl.cpp内のint ClockAppletImpl::position() constの戻り値。
数が少ないほどタスクバー上で左になると思われる。

外部コマンド

Global::execute( "command" );
これで時計設定画面以外のアプリも起動できた。これもQtopiaのリファレンスに載ってました。

改行

タスクバーに表示する文字が二段にできるとは驚きました。普通のLabelなんかと同じ感覚なんですね、三行もできましたけど二行目が中心にきて上下の一行目と三行目は半分のみの表示になりました。

      • 良く見るとQLabelを継承してるんだ、できて当たり前。
文字数(幅)

とりあえず横一杯になるまでは表示できそうな雰囲気ですね。ただし起動中のアプリのアイコンとQTボタンがはみ出してしまいました。↓はZEditorとターミナルを起動しています。ちなみに追加したアプレットのポジション値は5です。

この状態でビュースタイルにすると音量アイコンより右がはみ出しました。

不明点
  • ソース上でシグナルとして書かれてるtimeChanged()とclockChanged( bool )は多分外部からくると思うんだけどqcopで送ったりとかできるのでしょうか。もしできたら面白いんだけどね。
      • 二つのシグナルはQPEApplicationに載ってた。
  • 文字の代わりにアイコンを表示させたい場合はQLabelの代わりに何使えば良いのだろう?
  • アプレットってsoなファイルが生成されますが、作成にあたって普通の実行ファイルとの違いがよくわからんです。