ScatterLayout:分散布局在py中的引用

"""
    ScatterLayout:分散布局
"""

from kivy.app import App
from kivy.uix.scatterlayout import ScatterLayout
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.image import AsyncImage
# 导入颜色位置
from kivy.graphics import Color,Rectangle


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.pos,size=self.pos)
            self.bind(pos=self.update_rect,size=self.update_rect)
        # 创建分散布局
        scatter_layout=ScatterLayout()
        # 创建异布图像
        img = AsyncImage(source='https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fb-ssl.duitang.com%2Fuploads%2Fitem%2F201512%2F29%2F20151229185745_Q3JBd.jpeg&refer=http%3A%2F%2Fb-ssl.duitang.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1620021722&t=bc1d19fa8b4d7847fb1c5c7bb069c4c9')
        # 将图片添加到里分散布局里面
        scatter_layout.add_widget(img)
        # 加到父布局里面
        self.add_widget(scatter_layout)

    def update_rect(self,*args):
        self.rect.pos= self.pos
        self.rect.size=self.size


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


if __name__ == '__main__':
    ScatterLayoutApp().run()
原文地址:https://www.cnblogs.com/vip136510786/p/14614371.html