Clear_widget не очищает экран в киве - PullRequest
0 голосов
/ 19 апреля 2019

Я новичок в 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, в этом случае он очищает экран, но почему он не работает когда я вызываю метод через объект класса. Почему очистить и добавить виджет не работает в этом случае?

...