Как мне получить доступ к значению dict с помощью ключа на Kivy Language? - PullRequest
0 голосов
/ 20 июня 2020

На моем .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 и не нашел никаких ссылок о том, как объявлять и использовать словари. Даже пробовал использовать другой синтаксис, но безуспешно.

1 Ответ

0 голосов
/ 20 июня 2020

Думаю, вы должны позаботиться о своих котировках:

     f"{root.data_get['FO2']}"
...