如何使用kivy显示图像

16 投票
2 回答
30781 浏览
提问于 2025-04-18 06:30

我该如何在我的当前工作目录中显示一张图片呢?

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()

2 个回答

4

对我来说,接受的结果既简单又全面。

我有一个更好的方法,使用 .kv 文件来实现:

  • 在特定的布局中用“ids”设置你的照片
  • 你可以动态地更换你的照片

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'
  1. 基本上,在 kivy.kv(文件)中,把你的图片文件名放在“Image”下的 source 属性里。
  2. 记得像上面那样设置一个时钟调度,这样你就可以修改你的照片。你甚至可以通过把时钟调度改成 Clock.schedule_interval(self.photo, 0.06) 来实现照片的动态循环。

我尝试直接在 kivy.py(文件)中赋值给 'source' 属性,但遇到了断言错误。

希望你喜欢,如果有不明白的地方请留言!

18

你可以查看一下这个链接上的图片文档,里面说明了图片的来源是由source这个属性来控制的。所以你只需要改一行代码就能让它正常工作:

    return Image(source='b1.png')

撰写回答