【发布时间】:2018-11-25 10:47:30
【问题描述】:
我有一个代码,按下按钮应创建一个列表并将其放入窗口内的小部件列表中 但无论我选择哪种布局以及如何创建它们(指定 pos 与否) 它们总是创建得很好,但都在屏幕底部堆叠
自定义 kv 小部件:
<item_widget@FloatLayout>
Screen:
size_hint:1,None
height:25
id:item_space
color:18/256,47/256,82/256,0.4
canvas.before:
Color:
rgba: self.color
Rectangle:
pos: self.pos
size: self.size
Label:
id:description
markup:True
on_ref_press:root.open_hyperlink(args[1])
text_size : self.size
shorten:True
shorten_from:'right'
padding_x:4
size_hint:None,1
width:item_space.width-92
pos:self.x,self.y
valign:'center'
Label:
id:diameter
text_size : self.size
width:25
halign:'center'
size_hint:None,1
pos:item_space.width-88,self.y
valign:'center'
Label:
id:pitch
text_size : self.size
width:25
halign:'center'
size_hint:None,1
pos:item_space.width-59,self.y
valign:'center'
Label:
id:price_value
text_size : self.size
width:30
halign:'center'
size_hint:None,1
pos:item_space.width-30,self.y
valign:'center'
这个函数触发创建列表中的所有小部件:
def put_items_inscroll(self,item_list):
i=0
self.ids.menu_list_scroll.clear_widgets()
for dict in item_list:
self.ids.menu_list_scroll.add_widget(self.constr_widget(dict))
i+=1
constr_widget 定义:
def constr_widget(self,item,y=0):
row_instance=item_widget()
row_instance.ids.description.text='[ref='+item['link']+']'+str(item['description'])+'[/ref]'
row_instance.ids.diameter.text=str(item['diameter'])
row_instance.ids.pitch.text=str(item['pitch'])
row_instance.ids.price_value.text=str(item['calc_valPerProp'])
row_instance.size_hint = (1, None)
row_instance.height=25
return row_instance
我真的坚持这一点,我没有做任何改变 如果我只放一个小部件,它就可以放在顶部 但是如果我开始将它们全部放在底部,它们就会堆叠在底部
屏幕定义:
ScrollView:
id:menu_list_scroll_window
bar_width: 10
effect_cls: "ScrollEffect"
scroll_type: ['bars']
size_hint: (None, None)
size: (right_side.width, right_side.height-50)
StackLayout:
id: menu_list_scroll
spacing: 5
size_hint_y: None
width: right_side.width
height: self.minimum_height
orientation: 'rl-tb'
【问题讨论】:
-
请分享您对
menu_list_scroll的kv语言定义。 -
如果这对我有帮助,我会这样做我真的很困惑
-
用 StackLayout 替换 RelativeLayout
-
我也尝试了很多东西,但如果它帮助我注意到它并不是所有小部件都在同一个地方看起来他们都“尝试”在同一个地方在我添加的图片中可以看到彼此重叠
-
根据名称
menu_list_scroll,您是否要创建一个可滚动的菜单列表?
标签: python python-3.x kivy kivy-language