在kivy中加图片

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

 

posted @ 2021-04-26 10:46  trysocket  阅读(617)  评论(0编辑  收藏  举报