Pythonista3 画像を表示

ee9king に投稿

画像の表示には、SpriteNode ってのを使うようだ。

ikan=SpriteNode('hogehoge.gif')
ikan.position=self.size/2
ax=self.size.w / ikan.size.w
ay=self.size.h / ikan.size.h
if ax>ay :
	bb=ay
else:
	bb=ax
ikan.size=ikan.size * bb
self.add_child(ikan)

ax,ay以降の部分は、画像を画面際に収める方法。。。もっといい方法があるような気もするが、これしか思いつかなかった。

Nodeで使った変数には、プロパティ要素がつくようだけど、どんな要素がつくのかは、どこを見ればわかるんだろう。あてずっぽうで使ったら値が出たんでそれを使ったんだけど。

例えば、Labelに文字列を表示したら、別のLabelを横に配置したいとすると、文字列が入った大きさがわからないと、横に配置できないじゃない。だから、Labelのプロパティで得てpositionを決めればいいのではないかと思った。しかし、この方法ではうまくいかなかった。

label1=LabelNode(text=format(dd.days),font=('Papyrus',self.size.w/5))
label1.color='#ff359e'
label1.position=self.size/2
self.add_child(label1)

label2=LabelNode(text='days',font=('Papyrus',self.size.w/10))
label2.position=(label1.position.x+label1.size.w/2+label2.size.w/2,label1.position.y)
self.add_child(label2)

label1の横にlabel2を表示しようとしているのだが、label1のフォントサイズを画面の横幅を5で割ったものとしたので、サイズが画面大きさ(縦横回転)が変わってしまうからサイズも変わってしまって固定にできない。label1のサイズの横長さにlabel2(自分自身)のサイズを考慮して配置するようにしてみた。一応動いているようだ。しかし、 label1.size.hで縦サイズを得ようとすると、ちょっと大きすぎるサイズが得られてしまいうまくいかない。実際に値を表示させると、かなり大きい。これの解決方法が分からないので、そのままである。

まぁ、これでよしとしよう。これでいつまで突き詰めようとするからイヤになってしまうことが多いんだ、適当にやればいいのにね。

 

 

コメントを追加

Plain text

  • HTMLタグは利用できません。
  • ウェブページのアドレスとメールアドレスは自動的にリンクに変換されます。
  • 行と段落は自動的に折り返されます。