ОК, поэтому я хочу иметь FloorWidget с возможностью динамического добавления комнат нажатием кнопки во время работы приложения. Я хочу загрузить speci c graphi c в зависимости от номера комнаты и не знаю, как этого добиться в файле .kv
<RoomWidget>:
id: room_widget
room_num: # would be great if you could pass this as an argument
Image:
source: os.path.join(GRAPHICS_DIR_PATH, "room" + str(room_widget.room_num))
Есть ли способ сделать это? Можно ли как-то инициализировать room_num в файле python, передав его в конструктор RoomWidget и получить доступ к нему в файле .kv?
class RoomWidget(Screen, Widget):
def __init__(self, room_num, **kwargs):
super().__init__(**kwargs)
self.room_num = room_num
<RoomWidget>:
size_hint: (.2, .35)
source: os.path.join(GRAPHICS_DIR_PATH, "room" + str(self.room_num))
Image:
source: source
Если я сделаю что-то подобное, я получу ошибку: AttributeError: 'RoomWidget' У объекта нет атрибута room_num.