Как быть уверенным, что файл .kv полностью загружен (on_parent не решает эту проблему) - PullRequest
0 голосов
/ 16 октября 2018

Я пытаюсь создать несколько модульное приложение, и из-за этого я загружаю новые файлы .kv на лету:

def load_centralWidget(self, name):
    filename = name + '.kv'
    pathToFile = Path('kv/'+filename)
    if pathToFile.is_file():
        self.root.container.clear_widgets()
        filename = Builder.load_file('kv/' + filename)
        self.root.container.add_widget(filename)
    else:
        log.debug('File ' + filename + ' does not yet exist!')

Теперь я пытаюсь загрузить некоторую информацию изтекстовый файл и введите его в метку:

в файле .kv:

CentralWidget:
    BoxLayout:
        id: outerBox
        orientation: 'vertical'
        size: self.size
        canvas.before:
            Rectangle:
                pos: self.pos
                size: self.size
        on_parent:
            app.loadRunAdjustments("findMe")
        Label:
            id: findMe

в файле .py:

def loadRunAdjustments(self, lbl_id):
    textInput = self.root.container.children[0].ids[lbl_id]
    #doing some file loading stuff here
    textInput = #loaded string from file

(код сокращен, ноЯ думаю, что я получил все интересующие строки)

Если я пытаюсь запустить этот код, я получаю ошибку «IndexError: list index out of range».Отладка в коде говорит мне, что children - это пустой список.Я использую эту функцию часто в более поздние моменты.Тогда все работает нормально.Поэтому я думаю, что проблема здесь в том, что загруженный файл загружается не полностью, когда вызывается on_parent.

Есть ли опция / событие / что-то еще, чтобы быть абсолютно уверенным, что все загружено и дочерние элементы (и егоидентификаторы) существуют?

Заранее спасибо

...