python - 如何通过 Kivy 语言上的键访问 dict 值?
问题描述
在我的 .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
这没有多大意义,除非它有不同的方式在 kv 语言上调用 dict 值。我已经阅读了 kivy 的 kv 语言文档,并没有找到任何关于如何声明和使用字典的参考资料。即使尝试了不同的语法,也没有成功。
解决方案
我认为你必须照顾你的报价:
f"{root.data_get['FO2']}"
推荐阅读
- webauthn - WebAuthn,获取 credentialPublicKey 长度
- c# - 是否有等效于“String.IndexOf(String[])”的函数?
- java - 查询新对象列表
- java - 使用 Java SDK 关闭与 Azure 文件共享的连接
- python - 用于离散分布的 QQplot
- java - 跨 Kafka 分区对消息进行排序,并将其放入另一个 Kafka 主题中
- javascript - 使用函数调用作为默认参数 javascript
- javascript - 循环(纪元)时间到最高分钟
- c# - 如何制作程序来检测实时保护是否开启?
- node.js - ReferenceError: primordials 未在 node.js 中定义