Я пытаюсь создать несколько модульное приложение, и из-за этого я загружаю новые файлы .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.
Есть ли опция / событие / что-то еще, чтобы быть абсолютно уверенным, что все загружено и дочерние элементы (и егоидентификаторы) существуют?
Заранее спасибо