Я пытаюсь построить интерактивное школьное расписание, используя Kivy. Мой лог c написан внутри Python, а все макеты и общий эстет c написаны в файлах Kivy. Я хочу запустить указанный метод c сразу после загрузки файла Kivy, чтобы он изменил текст отображаемых кнопок.
Вот как это выглядит после запуска:
Вот как я хочу, чтобы мое приложение выглядело после запуска:
Названия дней и уроки в Poli sh.
Вот код planchart.py
class Okienko(Button):
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.lessons = []
f = open("/interaktywny_plan/classes.dat", "rb")
pon = pickle.load(f)
wto = pickle.load(f)
sro = pickle.load(f)
czw = pickle.load(f)
pt = pickle.load(f)
f.close()
self.lessons.append(pon)
self.lessons.append(wto)
self.lessons.append(sro)
self.lessons.append(czw)
self.lessons.append(pt)
self.lesson = ""
self.sub_press = ""
def on_release(self):
self.text = self.lesson
def on_press(self):
self.text = self.sub_press
def update_button(self):
if self.name_ == "one_pon":
self.lesson = self.lessons[0][0][0]
self.sub_press = self.lessons[0][0][1] + "\n" + self.lessons[0][0][2]
elif self.name_ == "two_pon":
self.lesson = self.lessons[0][1][0]
self.sub_press = self.lessons[0][1][1] + "\n" + self.lessons[0][1][2]
elif self.name_ == "three_pon":
self.lesson = self.lessons[0][2][0]
self.sub_press = self.lessons[0][2][1] + "\n" + self.lessons[0][2][2]
elif self.name_ == "four_pon":
self.lesson = self.lessons[0][3][0]
self.sub_press = self.lessons[0][3][1] + "\n" + self.lessons[0][3][2]
.............
Вот код Kivy:
<Okienko>:
background_color: [.5, .9, 1, 1]
halign: "center"
size_hint: None, None
font_size: 24
size: 96, 96
on_press: self.on_press()
on_release: self.on_release()
<PlanChart>:
cols: 11
padding: 2
Dzien:
id: pon
text: "Pon"
Okienko:
id: one_pon
name_: "one_pon"
Okienko:
id: two_pon
name_: "two_pon"
Okienko:
id: three_pon
name_: "three_pon"
Okienko:
id: four_pon
name_: "four_pon"
Okienko:
id: five_pon
name_: "five_pon"
..............
Я пытался использовать @mainthread
и положить self.update_button()
в __init__
, но он все равно будет пустым. Я попытался просто ввести self.update_button()
в __init__
, но я получил бы AtributeError
, потому что файл Kivy не был загружен. После этого я прочитал о Clock
модуле, но не мог понять, как правильно его использовать.