kivy 卡片式布局 达到2列自动往下延续
时间: 2024-05-10 15:21:05 浏览: 6
可以使用GridLayout来实现卡片式布局,并设置列数为2。当卡片数量超过2时,GridLayout会自动往下延续。
示例代码:
```
from kivy.app import App
from kivy.uix.gridlayout import GridLayout
from kivy.uix.button import Button
class CardLayout(GridLayout):
def __init__(self, **kwargs):
super(CardLayout, self).__init__(**kwargs)
self.cols = 2
self.spacing = [10, 10]
self.padding = [10, 10]
for i in range(10):
self.add_widget(Button(text='Card {}'.format(i+1)))
class MyApp(App):
def build(self):
return CardLayout()
if __name__ == '__main__':
MyApp().run()
```
在上面的示例中,我们创建了一个CardLayout类来实现卡片式布局,使用GridLayout作为基类,设置列数为2,间距和内边距分别为10。然后添加了10个Button作为卡片。当卡片数量超过2时,GridLayout会自动往下延续。最后在MyApp类中创建了一个CardLayout实例并返回。运行程序后,会显示出一个卡片式布局,其中每个卡片都包含一个文本和一个按钮。