在kivy中加图片
阅读原文时间:2023年07月09日阅读:1

from kivy.app import App
from kivy.uix.scatterlayout import ScatterLayout
from kivy.uix.image import AsyncImage # 加载异步图片
from kivy.uix.boxlayout import BoxLayout
from kivy.graphics import Color,Rectangle

无kv文件

class ScatterLayoutWidget(ScatterLayout):
pass

class BoxLayoutWidget(BoxLayout):
def __init__(self,**kwargs):
super().__init__(**kwargs)

    with self.canvas:  
        Color(1,1,1,1)  
        self.rect = Rectangle(pos=self.size,size = self.size)     # 创建一个矩形   初使为盒子布局的大小  
        self.bind(pos = self.update\_rect,size=self.update\_rect)   # 画布大小绑定  
    scatter\_layout= ScatterLayoutWidget() # 创建分散布局类  
    image = AsyncImage(source = 'back.jpg')   # 创建异步图像  
    scatter\_layout.add\_widget(image)      # 把图片加到分散布局里面

    self.add\_widget(scatter\_layout)      # 把分散布局放到盒子布局里面

def update\_rect(self,\*args):  
    # 矩开有位置就是盒子布局的位位置大小也是  
    self.rect.pos=self.pos  
    self.rect.size=self.size

class SAPP(App):
def build(self):
return BoxLayoutWidget()

SAPP().run()