web-dev-qa-db-ja.com

kivyを使用して画像を表示する方法

Pwdに画像を表示するにはどうすればよいですか?

import kivy
from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.image import Image


class MyApp(App):
  def build(self):
    return Image('b1.png')

MyApp().run()
11
Rajeev

画像ドキュメント をチェックして、画像ソースがsourceプロパティによって制御されていることを確認できます。したがって、1行だけ変更して機能させることができるはずです。

    return Image(source='b1.png')
15
inclement

私にとって許容できる結果は、包括的で単純すぎます。 私にはもっと良い方法があります:

  • 「ids」を使用して特定のbox_layoutに写​​真を設定します
  • 写真を動的に変更できます

Kivy.kv(ファイル)

_<main_display>:
    BoxLayout:
        orientation: "vertical"

        Image:
              id: imageView
              source: '<random_name>.jpg'
              allow_stretch: True
 ....
_

Kivy.py(ファイル)

_class main_display(BoxLayout):
    def __init__(self, **kwargs):
       super(main_display,self).__init__()
       # Photo can be reference by running the photo function once:
       Clock.schedule_once(self.photo)

     def photo(self,dt):
       # Replace the given image source value:
       self.ids.imageView.source = 'kivy_test.jpg'
_

基本的に、kivy.kv(ファイル)のsource属性の下にランダムなファイル名を設定します。 kivy.py(ファイル)から属性「source」を直接割り当てようとしましたが、アサーションエラーで失敗しました。

Kivy.pyファイルでは、上記のように時計のスケジュールを1回設定することを忘れないでください。そうすれば、写真を変更できます。クロックスケジューラをClock.schedule_interval(self.photo, 0.06)に変更することで、写真のループを(動的に)追加することもできます。

楽しい !

0
Jason Akon