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