0 && $edn < $lmax ) ? $edn: $lmax; $fmt = '%0'.strlen($edn).'d: '; for (; $stn<=$edn; $stn++ ) { $tstr = htmlspecialchars(mb_convert_encoding($lines[$stn-1],SOURCE_ENCODING,"auto")); $res .= ( $args[2] ? sprintf($fmt,$stn):'').refpre_replace_tab($tstr); } return '
'.$res.'
'; } ?> E71:appuifw.Canvasを解説 - HiiHahWIKI - making some notes for... -
トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

E71:appuifw.Canvasを解説

Last-modified: 2013-08-24 (土) 02:14:21 (2982d)
Top / E71:appuifw.Canvasを解説

E71:appuifw.Canvasを解説

簡単ですが、appuifw.Canvasクラスの使い方が「Python for S60_1_4_5.pdf」みてもよくわからなかったので、実際に使ってみてわかったことを書きます。

appuifw.Canvasクラスのメソッド

Canvasクラスが持っているメソッドは以下の通り

メソッド名動作coordseaの指定値有効なオプション
line(coordseq[, <options>])線を描くsx,sy,ex,eyoutline,width
polygon(coordseq[, <options>])
rectangle(coordseq[, <options>])四角を描くsx,sy,ex,eyoutline,width,fill
ellipse(coordseq[, <options>])円を描くsx,sy,ex,eyoutline,width,fill
pieslice(coordseq, start, end[, <options>])
arc(coordseq, start, end[, <options>])
point(coordseq[, <options>])点を描くx,yfont
clear([color=0x ])
text(coordseq, text[ ll=0, font=None ])テキストを描くx,y

※1:手抜きですが、空欄のメソッドは試してません。
※2:sx,syは開始のx,y座標、ex,eyは終了のx,y座標を示します。
※3:pointメソッドのx,y座標は、点の中心の座標です。
※4:testメソッドのx,y座標は、テキスト開始の左下の座標です。

なお、ほんと手抜きで申し訳ないんですが、以下のメソッドは、メソッドの引数が長いので表からは省略してます笑

  1. measure text(text[font=None, maxwidth=-1, maxadvance=-1 ])
    テキストの長さを測るメソッドっぽいです。
  2. blit(image[,target=(0,0), source=((0,0),image.size), mask=None, scale=0 ])
    イメージを貼り付けるメソッドっぽいです。

appuifw.Canvasを使ってみる

上で紹介したメソッドのうち

  • line
  • rectangle
  • ellipse
  • point
  • text

を使ったサンプルソースを以下に示します。

■canvastest2.py

#refpre(canvastest2.py,,1)

すると、こんな画面が表示されます。
Screenshot0096.jpg

ソースの解説

  • 07行目~10行目で、lineメソッドを色、太さの指定を変えて描画します。
  • 12行目で、pointメソッドで直径が20ピクセルの点を描画します。
  • 14行目~16行目で、開始x,y座標が12行目の点の中心と同じである四角、円を描画します。
  • 18、19行目では、外枠と中の色が違う円と四角を描画します。
  • 21行目では、シンプルなフォントしてのテキストを描画します。
  • 22行目では、わりと色々指定したフォントのテキストを描画します。

添付ファイル: fileScreenshot0096.jpg 1318件 [詳細] filecanvastest2.py 674件 [詳細]