当我尝试向 MDList 添加许多小部件时,应用程序冻结。我可以在添加每个小部件后更新 gui 吗?是否可以在不冻结的情况下添加小部件?
from kivy.lang import Builder
from kivy.properties import ObjectProperty
from kivymd.app import MDApp
from kivymd.uix import Screen
from kivymd.uix.button import MDRaisedButton
from kivymd.uix.list import OneLineIconListItem
kv = '''
ScreenManager:
id: screen_mng
Screen:
name: 'scr 1'
Button_:
screen_mng: screen_mng
text: 'scr 2'
on_release:
screen_mng.current = 'scr 2'
Screen_:
list: container_
name: 'scr 2'
on_pre_enter: self.load_items()
ScrollView:
MDList:
id: container_'''
class Button_(MDRaisedButton):
screenmanager = ObjectProperty()
class Screen_(Screen):
list = ObjectProperty()
def load_items(self):
for i in range(100):
item = OneLineIconListItem(text=str(i))
self.list.add_widget(item)
class Test(MDApp):
def build(self):
return Builder.load_string(kv)
app = Test()
app.run()
如果我使用多线程,没有任何变化,应用程序仍然冻结
def load_items(self):
Thread(target=self._load_items).start()
def _load_items(self):
for i in range(100):
item = OneLineIconListItem(text=str(i))
self.list.add_widget(item)
请帮忙