Я новичок в Kivy, поэтому в моем случае я пытаюсь удалить существующие данные с экрана, а затем добавляю новый виджет, но он не очищает данные экрана. Здесь мой сценарий
main.kv
<AddressBook>:
name: 'addressbook'
ScrollView:
do_scroll_x: False
MDList:
id: ml
это мой экран, я показываю список данных в MDList
main.py
class AddressBook(Screen):
"""AddressBook Screen uses screen to show widgets of screens."""
def __init__(self, *args, **kwargs):
super(AddressBook, self).__init__(*args, **kwargs)
Clock.schedule_once(self.init_ui, 0)
def init_ui(self, dt=0):
"""Clock Schdule for method inbox accounts."""
sqlExecute("DELETE FROM addressbook WHERE label='' ")
data = sqlQuery("SELECT label, address from addressbook")
if data:
for item in data:
meny = TwoLineAvatarIconListItem(text=item[0], secondary_text=item[1], theme_text_color='Custom',text_color=NavigateApp().theme_cls.primary_color)
meny.add_widget(AvatarSampleWidget(source='./images/avatar.png'))
self.ids.ml.add_widget(meny)
else:
content = MDLabel(font_style='Body1',
theme_text_color='Primary',
text="No Contact Found yet...... ",
halign='center',
bold=True,
size_hint_y=None,
valign='top')
self.ids.ml.add_widget(content)
def refreshs(self):
self.ids.ml.clear_widgets()
uikivysignaler.py
class UIkivySignaler(Thread):
def run(self):
kivyuisignaler.acquire()
while state.shutdown == 0:
try:
state.kivyapp.obj_1.refreshs()
except Exception as e:
print(e)
здесь я вызываю метод refresh () из файла uikivysignaler.py, он выполняет код нормально, но не очищает экран, который я пробовал с событием on_press, в этом случае он очищает экран, но почему он не работает когда я вызываю метод через объект класса. Почему очистить и добавить виджет не работает в этом случае?