我创建了一组按钮,其父布局分别是 gridlayout 和 scrollview。我找不到删除网格布局或滚动视图的方法,以便我可以以编程方式重新创建它们并在上一组的位置添加另一组按钮。
我试过 self.remove_widget(layout) 但这没有用。
def create_scrollview(self, dt):
namelist = ["Name", "Age", "Sex", "Height", "Weight"]
n = 0
layout = GridLayout(cols=1, spacing=15, size_hint_y=None, padding=40)
self.ids['grid'] = weakref.ref(layout)
layout.bind(minimum_height=layout.setter("height"))
keys = f(dm.read_name())
values = dm.read_all()
temp_dict = dict(zip(keys, values))
if self.name_instance in temp_dict:
for element in temp_dict[self.name_instance]:
layout.add_widget(Button(
on_release=partial(self.nav_to_char_profile),
text=str(namelist[n])+": "+str(element),
font_size=25,
size=(50, 50), size_hint=(1, None),
background_normal='normal.png',
background_down='down.png'))
self.ids["btn"+str(n)] = partial(weakref.ref)
n = n+1
layout.add_widget(Button(on_press=partial(self.nav_to_char_profile), text="Back", font_size=25, size=(50, 50),
size_hint=(.50, None),
background_normal='normal.png',
background_down='down.png'))
scrollview = ScrollView(size_hint=(1, None), size=(Window.width, Window.height))
scrollview.add_widget(layout)
self.ids.container.add_widget(scrollview)
删除并重新创建滚动视图的方法:
def return_btn_text(self, instance):
self.store_text_instance(instance)
self.remove_widget(App.get_running_app().root.ids.BasicProfile.ids.container)
App.get_running_app().root.ids.BasicProfile.trigger()
我发现我可以在重新创建之前清除滚动视图:
App.get_running_app().root.ids.BasicProfile.ids.container.clear_widgets()
container
作为滚动视图 ID
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句