На моем .py:
class DataGet(BoxLayout):
def __init__(self, **kwargs):
super(DataGet, self).__init__(**kwargs)
self.data_get = {
"FO2": 62,
"Peek Pressure": 12,
"Total Volume": 35,
"PEEPe": 26,
"Minute Volume": 98,
"Respiratory Rate": 75,
}
self.updater = Thread(target=self.get_data, args=())
get_fo2 = ObjectProperty(None)
get_peepe = ObjectProperty(None)
get_peek_pressure = ObjectProperty(None)
get_minute_volume = ObjectProperty(None)
get_total_volume = ObjectProperty(None)
get_respiratory_rate = ObjectProperty(None)
def get_data(self): #This is just a test function, not yet implemented
while True:
for data in self.data_get:
self.data_get[data] = edg.update_data(self.data_get[data])
print(self.data_get[data])
print("###")
print(f"fo2 = {self.data_get}")
print("###")
sleep(2)
На моем .kv:
<DataGet>:
get_fo2: get_fo2
get_peepe: get_peepe
get_peek_pressure: get_peek_pressure
get_minute_volume: get_minute_volume
get_total_volume: get_total_volume
get_respiratory_rate: get_respiratory_rate
on_kv_post: root.updater.start()
BoxLayout:
cols:1
orientation: "vertical"
BoxLayout:
cols:2
orientation: "vertical"
halign: "center"
Label:
text: f"FO2"
Label:
id: get_fo2
font_size: 60
text: f"{root.data_get["FO2"]}"
Когда я вызываю выполнение кода, терминал выводит:
f"{root.data_get["FO2"]}"
^
SyntaxError: invalid syntax
Что не имеет особого смысла, если только у него нет другого способа вызова значений dict на языке kv. Я прочитал документацию по языку kivy kv и не нашел никаких ссылок о том, как объявлять и использовать словари. Даже пробовал использовать другой синтаксис, но безуспешно.