python-3.x - 如何将多个小部件同时添加到滚动视图?
问题描述
我是 kivy 的新手,所以我正在开发一个测试应用程序。我想用 ScrollView 创建一个屏幕,我想在 ScrollView 中的“行”中添加多个内容、文本(描述)和图像。我试过这样:
class PresentUploadedData(Screen):
container = ObjectProperty(None)
def __init__(self, **kwargs):
super(PresentUploadedData, self).__init__(**kwargs)
Clock.schedule_once(self.setup_scrollview, 1)
def setup_scrollview(self, dt):
self.container.bind(minimum_height=self.container.setter('height'))
self.add_text_inputs()
def add_text_inputs(self):
for x in range(30):
self.container.add_widget(Label(text="Label {}".format(x), size_hint_y=None, height=40, color= [128,0,0,1]))
self.container.add_widget(Image(source='test.jpg', size_hint=(None, None,), width=50, height=50))
使用此.kv
文件:
<PresentUploadedData>:
name: "presentupload"
message: send
container: container
canvas:
Color:
rgba: 1,1,1,1
Rectangle:
size: self.size
pos: self.pos
GridLayout:
rows: 3
cols: 1
spacing: 5
padding: 5
font_name: "Calibri"
background_color: 1,1,1, 1
ScrollView:
background_color: 1,1,1, 1
size_hint: (1, .9)
bar_width: 10
bar_color: 128,0,0,0.7
bar_inactive_color: 128,0,0,1
effect_cls: "ScrollEffect"
scroll_type: ['bars', 'content']
color: 128,0,0,1
StackLayout:
id: container
size_hint_y: None
color: 128,0,0,1
GridLayout:
cols: 2
BoxLayout:
spacing: 5
size_hint: .7, .1
Button:
text: "< BACK"
id: send
color: 0, 0, 0, 1
background_color: .88,.88,.88, 1
size_hint: .2, 1
on_release:
app.root.current = "main"
root.manager.transition.direction = "right"
但我有ScrollView accept only one widget
例外。为什么我得到这个,我该如何解决这个问题?
解决方案
文件中有错误.kv
:
GridLayout:
cols: 2
这是没用的。
这个问题可以在循环for
内再解决一个:for
row = [Label(text="Label {}".format(x), size_hint_y=None, height=50, color= [128,0,0,1]), Image(source='test.jpg', size_hint=(None, None,), width=50, height=50)]
for r in row:
self.container.add_widget(r)
但这也没有把东西放在一起,只是让它们在那里。
推荐阅读
- automation - 你如何使用 puppeteer 遍历复选框?
- spring-batch - 添加 Splunk 日志记录步骤后,Spring 批处理作业未终止
- c - 将字符串插入链表时,会出现换行符,固定时会导致异常行为吗?
- html - 如何将字段与标题内的文本对齐
- javascript - scrollView 轮播中的居中视图反应水平按钮的本机列表 - javascript
- c# - 实体框架:使用初始数据添加新的唯一列?
- azure - Azure API 管理 - 当产品不需要订阅时如何执行产品策略?
- php - WooCommerce:获得下一个“最新”产品
- azure-devops - 如果 nuget 包不是最新的,如何制动管道?
- javascript - Material-UI DataGrid:我们能否在 Material-UI DataGrid 中展开折叠每一行